Comment puis-je dire à git d'ignorer mon fichier local et de prendre celui de ma branche distante sans essayer de fusionner et de provoquer des conflits?
Réponses
Trop de publicités?C'est la solution la plus sûre:
git stash
Maintenant, vous pouvez faire ce que vous voulez sans crainte de conflits.
Par exemple:
git checkout origin/master
Si vous souhaitez inclure les modifications à distance dans la branche principale, vous pouvez procéder comme suit:
git reset --hard origin/master
Cela fera de votre branche "maître" à pointer sur "origine / maître".
Je comprends la question comme ceci: vous voulez remplacer complètement le contenu d’un fichier (ou d’une sélection) en amont. Vous ne voulez pas affecter directement l'index (vous devez donc passer par add + commit comme d'habitude).
Il suffit de faire
git checkout remote/branch -- a/file b/another/file
Si vous souhaitez effectuer cette opération pour des sous-arbres étendus et que vous souhaitez affecter directement l'index, utilisez
git read-tree remote/branch:subdir/
Vous pouvez ensuite (éventuellement) mettre à jour votre copie de travail en faisant
git checkout-index -u --force
Utiliser l' -s
ou --strategy
option combinée avec l' -X
option. Dans votre question, vous voulez garder tous les fichiers distants, et remplacer les fichiers du même nom.
Remplacer les conflits avec la version à distance
git merge -s recursive -Xtheirs upstream/master
va utiliser la télécommande pensions de version de tous les conflits de fichiers.
Remplacer les conflits avec la version locale
git merge -s recursive -Xours upstream/master
va utiliser le local des pensions de version de tous les conflits de fichiers.