J'ai commencé à collaborer avec quelques amis sur un projet et ils utilisent le référentiel heroku git.
J'ai cloné le référentiel il y a quelques jours et ils ont depuis apporté des modifications, j'essaie donc d'obtenir les dernières mises à jour
J'ai exécuté la git pull --rebase
commande comme indiqué ici (est-ce la bonne façon de le faire?): Https://devcenter.heroku.com/articles/sharing#merging-code-changes
J'obtiens l'erreur suivante:
$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Je suppose que j'ai dérangé le code et que maintenant il veut que je valide ou que je rejette (est-ce que cela signifie stash?) Les changements. Est-ce ce qui se passe? Si tel est le cas, je voudrais annuler toutes les modifications que j'aurais pu apporter et simplement obtenir le code mis à jour du référentiel git.
Une idée de ce que je peux faire?
git push -f
Si vous souhaitez conserver vos modifications de travail tout en effectuant un rebase, vous pouvez utiliser
--autostash
. De la documentation :Par exemple:
la source
git config --global rebase.autoStash true
, vous n'avez pas besoin de passer le commutateur.rebase.autostash
est disponible depuis 2.6).git rebase --interactive
aussi!Tirer avec rebase est une bonne pratique en général.
Cependant, vous ne pouvez pas faire cela si votre index n'est pas propre, c'est-à-dire que vous avez effectué des modifications qui n'ont pas été validées.
Vous pouvez le faire pour contourner, en supposant que vous souhaitiez conserver vos modifications:
git stash
git stash apply stash@{0}
ou le plus simplegit stash pop
la source
git stash pop
appliquer les modifications les plus récentes et éviter de les mémoriser plus longtempsapply stash@{0}
..bashrc
(ou ce que vous utilisez):alias stashpull='git stash; git pull; git stash pop'
Commencez par un
git status
Vérifiez si vous avez des modifications en attente. Pour les jeter, exécutez
la source
Cela fonctionne pour moi:
la source
Tu peux toujours faire
et vous obtiendrez soit (a) aucun changement si vous avez des changements non validés qui entrent en conflit avec les changements en amont ou (b) le même effet que stash / pull / apply: un rebase pour vous mettre sur les dernières modifications de HEAD et vos modifications non validées à gauche comme si.
la source
Lorsque le changement non organisé est dû au fait que git tente de corriger les conventions eol sur un fichier (comme c'est toujours mon cas), aucune quantité de stockage, de retrait ou de réinitialisation ne le fera disparaître.
Cependant, si l'intention est vraiment de rebaser et d'ignorer les modifications non mises en scène, ce que je fais est de supprimer la branche localement, puis de la vérifier à nouveau.
Voila! Cela ne m'a pas encore déçu.
la source
Si vous souhaitez cacher automatiquement vos modifications et les désinstaller pour chaque rebase, vous pouvez le faire:
la source
--autostash
alors que cela peut être simplement ... automatique?