Pourquoi FETCH_HEAD
est-il différent de HEAD
, après une fusion?
Une fusion crée un nouveau commit, contenant tous les changements de la HEAD
d'origine, maintenant ORIG_HEAD
et FETCH_HEAD
. Cela signifie que si votre HEAD
d'origine contenait des modifications non contenues dans FETCH_HEAD
, le nouveau (fusionné) HEAD
sera différent de FETCH_HEAD
car il contient également ces validations.
chose à vérifier
Il est possible que votre branche actuelle est déjà à jour avec le FETCH_HEAD
d'une précédente Fetch, pour la raison ci-dessus, ou pour une autre raison.
Pour vérifier cela, obtenir le sha
(nombre hexadécimal) de votre chercher la tête comme suit:
git log -1 FETCH_HEAD
commit bec5aadef68a5d29c9d523358a0189b86cad4c82
Author: Alex Brown <[email protected]>
Date: Tue Nov 16 10:05:19 2010 +0000
weather report
et copiez les 6 premiers chiffres du FETCH_HEAD
: bec5aa
suivant, recherche pour cette sha
dans l'ascendance de votre tête
git log HEAD | grep "commit bec5aa" -A 5
commit bec5aadef68a5d29c9d523358a0189b86cad4c82
Author: Alex Brown <[email protected]>
Date: Tue Nov 16 10:05:19 2010 +0000
weather report
si cela renvoie quelque chose mais vide, le FETCH_HEAD
a déjà été fusionné. Toutes les différences que vous voyez sont dans le HEAD
actuel, qui peut être le HEAD
fusionné (ou un descendant).
* Exemple de démontrer cette »
cd /tmp
mkdir 1
cd 1
git init
echo "Woo" > a.txt
git add a.txt
git commit -m "first commit"
cd ..
git clone 1 2
cd 1
echo "Its nice today" >> a.txt
git commit -a -m "weather report"
cd ..
ls
cd 2
ls
echo "Like peas in a pod" > b.txt
git add b.txt
git commit -m "sayings"
git fetch
git diff FETCH_HEAD
git merge FETCH_HEAD
git diff FETCH_HEAD
Avez-vous des changements Unstaged? Consultez' status' git. Et essayez 'git diff HEAD FETCH_HEAD' pour éviter la comparaison avec votre arbre de travail actuel. –
rien à commettre , et git diff HEAD FETCH_HEAD me donne encore beaucoup de différences –