Je travaille sur une branche Git qui comporte des tests erronés et j'aimerais extraire (fusionner les modifications, pas seulement écraser) ces tests d'une autre branche où ils sont déjà corrigés.
Je sais que je peux faire
git pull Origin that_other_branch
mais cela va tenter de fusionner beaucoup d'autres fichiers, pour cela je ne suis pas encore prêt.
Est-il possible d'extraire et de fusionner uniquement le fichier spécifié (et pas tout) à partir de cette autre branche?
Ce n'est pas un duplicata de requête Git pull pour un seul fichier, car toutes les réponses à cette question sont comment inverser localement le fichier fichier modifié à la version du référentiel, sans changer de branche.
Vous pouvez récupérer et extraire un seul fichier de cette façon:
git fetch
git checkout -m <revision> <yourfilepath>
git add <yourfilepath>
git commit
Concernant la commande git checkout
:<revision>
- un nom de branche, c’est-à-dire Origin/master
<yourfilepath>
n’inclut pas le nom du référentiel (que vous pouvez obtenir en cliquant sur copy path
bouton sur une page de fichier sur GitHub), c.-à-d. README.md
Voici une méthode un peu plus facile que je viens de trouver lorsque je fais des recherches sur ceci:
git fetch {remote}
git checkout FETCH_HEAD -- {file}
git checkout master -- myplugin.js
maître = nom de la branche
myplugin.js = nom du fichier
La réponse de @ Mawardy a fonctionné pour moi, mais mes modifications étaient sur la télécommande et j'ai donc dû spécifier l'origine.
git checkout Origin/master -- {filename}
Oui, voici le processus:
# Navigate to a directory and initiate a local repository
git init
# Add remote repository to be tracked for changes:
git remote add Origin https://github.com/username/repository_name.git
# Track all changes made on above remote repository
# This will show files on remote repository not available on local repository
git fetch
# Add file present in staging area for checkout
git check Origin/master -m /path/to/file
# NOTE: /path/to/file is a relative path from repository_name
git add /path/to/file
# Verify track of file(s) being committed to local repository
git status
# Commit to local repository
git commit -m "commit message"
# You may perform a final check of the staging area again with git status