Oui et non.
Vous pourriez essayer de dépendre des crochets, mais cela suppose qu'ils soient installés sur les sites distants, ce qui n'est pas toujours fiable.
Une autre manière d'obtenir presque le même effet serait d'utiliser un conducteur du filtre de l'attribut de salissure/nettoyage , mais pas pour un repo complet .
(Source : Livre Pro Git : Personnalisation de Git - Attributs Git )
De cette façon, le script est capable de décoder les fichiers, tandis que le script propre les coderait.
Encore une fois, cela pourrait fonctionner pour quelques fichiers sensibles, pas pour un repo complet .
Bien sûr, ces scripts ne seraient pas dans le référentiel lui-même, et seraient gérés/communiqués d'une autre manière.
Comme Alcaline souligne dans les commentaires cette idée n'est pas adaptée à un dépôt, car le responsable principal de git Junio C. Hamano commente en 2009 :
Comme la seule raison d'être de diff.textconv
est de permettre une conversion potentiellement (par exemple msword-to-text) appliquée à la paire de contenus préimage et postimage (qui sont censés être "propres") avant de donner un résultat textuel. (qui sont supposés être "propres") avant de donner une différence textuelle à la consommation humaine. diff à la consommation humaine.
La configuration ci-dessus peut sembler fonctionner, mais si vous voulez vraiment un référentiel crypté, vous devriez utiliser un système de fichiers crypté.
Cela présenterait l'avantage supplémentaire que l'arbre de travail associé à votre référentiel serait également crypté. .
Même s'il ne s'agit pas d'un repo complet, l'idée a été mise en œuvre (3 ans plus tard en 2013) avec git-crypt
comme indiqué dans Dominic Cerisano 's réponse .
git-crypt
utilise un pilote du filtre de contenu (implémenté en cpp, avec commands.cpp
la mise en place de votre .gitattributes
avec les autorités compétentes smudge
et clean
commandes de filtrage).
Comme tout pilote de filtre de contenu, vous pouvez alors limiter l'application de git-crypt
à l'ensemble des fichiers que vous voulez, dans la même .gitattributes
fichier :
secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
Comme mentionné dans le README
:
git-crypt
s'appuie sur les filtres git, qui n'ont pas été conçus avec le chiffrement dans l'esprit.
En tant que tel, git-crypt
n'est pas le meilleur outil pour chiffrer la plupart ou la totalité tous les fichiers d'un référentiel.
Où git-crypt
est vraiment utile lorsque la majeure partie de votre référentiel est publique, mais que vous avez quelques fichiers (peut-être des clés privées nommées *.key
ou un fichier contenant les informations d'identification de l'API) que vous devez chiffrer.
Pour crypter un référentiel entier, envisagez d'utiliser un système tel que git-remote-gcrypt
à la place.
(voir la suite à spwhitton/ tech/ code/ git-remote-gcrypt , de Sean Whitton )
2 votes
Une question similaire a été posée sur la liste de diffusion Git en juillet 2009 : thread.gmane.org/gmane.comp.version-control.git/123466/
1 votes
Je n'ai pas trouvé de discussion ici : kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread
0 votes
Le lien du kerneltrap est mort
0 votes
Grâce à la archives le contenu survit : kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread