1897 votes

Comment faire pour obtenir un seul fichier à partir d’une autre branche

Je suis à l’aide de git et travaillant sur la branche master. Cette branche a un fichier appelé app.js.

J’ai une branche de l’expérience dans laquelle j’ai fait un tas de changements et des tonnes de commit. Maintenant, je veux apporter tous les changements qu’à app.js d’expérience à la branche master.

Comment je fais que ?

Une fois de plus, je ne veux pas d’une fusion. Je veux juste apporter toutes les modifications dans app.js d’expérience branche à branche master.

2327voto

VonC Points 414372
git checkout master               # first get back to master
git checkout experiment -- app.js # then copy the version of app.js 
                                  # from branch "experiment"

Voir aussi git comment faire pour annuler les modifications d'un fichier?

Comme Jakub Narębski mentionne dans les commentaires:

git show experiment:path/to/app.js > app.js

fonctionne aussi, sauf que, comme détaillé dans la question "Comment faire pour récupérer un fichier unique à partir de révision spécifiques dans Git?", vous devez utiliser le chemin d'accès complet forme le répertoire racine de l'opération.
D'où l'path/to/app.js utilisé par Jakub dans son exemple.

Comme Frosty mentionne dans les commentaires:

vous obtenez seulement la plus récente de l'état de app.js

Mais, pour git checkout ou git show, vous pouvez en fait référence à toute révision que vous voulez, comme illustré dans la question "git checkout révision d'un fichier dans git gui":

$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME

serait la même chose est $FILENAME est un chemin d'accès complet d'un fichier versionné.

$REVISION peut être, comme illustré en git rev-parse:

experiment@{yesterday}:app.js # app.js as it was yesterday 
experiment^:app.js            # app.js on the first commit parent
experiment@{2}:app.js         # app.js two commits ago

et ainsi de suite.

561voto

chhh Points 1154

Tout est beaucoup plus simple, utiliser git checkout pour cela.

Supposons que vous êtes sur la branche master et que vous voulez app.js de branche new_feature, puis :

vous apportera le contenu du fichier souhaité. Vous pouvez, comme toujours, utiliser partie de sha1 au lieu du nom de la branche « new_feature » pour obtenir le fichier tel qu’il était dans cette validation particulière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X