Scénario: j'ai apporté quelques modifications à mon projet et je ne veux pas les git ajouter
car elles ne sont pas complètement faites. En même temps, je souhaite git pull
quelques modifications de la même branche. Que dois-je faire ici
3 Réponses :
Je suppose que git stash
est ce que vous recherchez
À partir de documents :
Utilisez git stash lorsque vous voulez enregistrer l'état actuel du répertoire de travail et de l'index, mais que vous voulez retourner dans un répertoire de travail propre. La commande enregistre vos modifications locales et rétablit le répertoire de travail pour qu'il corresponde au commit HEAD
Deux options. Le plus simple serait probablement de cacher votre travail:
git commit --amend
Cela indique à Git de faire un commit (ou deux) de votre répertoire de travail et de l'étape. Après avoir récupéré les nouvelles modifications, vous pouvez appliquer le stash via
git pull --rebase origin master
Une autre option, peut-être un peu plus sophistiquée, serait en fait de git add code > vos modifications et effectuez un commit:
git add ... # maybe multiple times git commit -m 'your commit'
Ensuite, effectuez un pull rebase:
git stash apply
Cela amènera le nouveau (s) commit (s) sous le commit que vous venez de faire. Enfin, vous pouvez terminer votre travail puis modifier le commit temporaire:
git stash
Un avantage possible de cette deuxième option est qu'elle vous donne l'option pour faire un git push
avec tout le travail dans le commit temporaire. Si ce travail est très important, alors le protéger via une sauvegarde peut vous intéresser. Faire un stash, en revanche, ne vous laisse qu'un commit local.
Voici les étapes à suivre
git stash
// Cela masquera vos nouveaux changements de code
maintenant vous pouvez faire ce que vous voulez .. comme
git fetch
ou
git pull
ou
git reset
une fois que vous avez effectué git pull
, vous pouvez récupérer les fichiers non ajoutés en:
git stash apply
Remarque:
Personnellement, je ne préfère pas git pull et git merge. Plutôt que de faire cela, je suis les commandes mentionnées ci-dessous.
Je n'utilise pas git pull
/ git merge
, mais utilise :
git fetch origin
puis
git rebase origin / master
// ou votre reponame / branch
Si vous comptez expérimenter, assurez-vous d'avoir une sauvegarde de votre dossier local avant de le faire. Avez-vous essayé de cacher les fichiers avant de les extraire?
non. la dissimulation m'aide-t-elle dans ce scénario
N'oubliez pas que
git pull
n'est qu'un moyen d'exécuter deux commandes Git. Le premier estgit fetch
, que vous pouvez toujours exécuter à tout moment. C'est la deuxième commande Git qui pose problème. Cette deuxième commande estgit merge
par défaut, mais vous pouvez choisirgit rebase
à la place. L'un ou l'autre nécessite que votre arbre de travail soit propre pour commencer. Vous pouvez utilisergit stash
pour organiser cela, mais si votre plan est d'utilisergit rebase
, je pense que cela fonctionne beaucoup mieux si vous vous engagez simplement (apprenez à utilisergit rebase -i
, c'est la voie à suivre, vous l'utiliserez pour bien plus que simplement apporter les commits des autres).