Forcer Git Pull à écraser les fichiers locaux
Git est un peu difficile pour les nouveaux utilisateurs si l’une des premières tâches pour vous est d’effectuer une sorte d’extraction à partir du référentiel distant Git, alors nous allons découvrir des approches réalisables pour que Git écrase quelques fichiers locaux.
Il ne fait aucun doute que Git est un outil très efficace pour gérer le travail d’une équipe. Vous devez reconnaître quelques principes importants pour finir intelligemment avec Git. La bonne chose est que lorsque vous les apprenez correctement, vous pouvez rarement rencontrer des problèmes auxquels vous ne pouvez pas vous échapper.
Nous utilisons le référentiel local, un référentiel distant avec une ou plusieurs branches dans un workflow Git normal. Les référentiels conservent tous les enregistrements concernant le projet, y compris son historique complet et toutes les branches. Une branche est un groupe de changements menant d’un projet vide à l’état actuel.
Lorsque vous travaillez sur un fichier local et que vous introduisez de nouvelles modifications, vous devez transmettre les modifications locales au référentiel distant, et jusqu’à ce que les modifications locales soient transmises aux référentiels distants, chaque travail est disponible sur votre machine. Le problème commence lorsqu’une équipe travaille sur la même chose et souhaite apporter des modifications au même endroit.
Le pull
est basé sur de multiples opérations, consistant à récupérer les données de la branche distante puis à fusionner ses modifications dans le référentiel local. Les opérations mentionnées ci-dessus peuvent être effectuées manuellement à l’aide des commandes suivantes.
git fetch
git merge origin/$CURRENT_BRANCH
Ici, nous avons deux choix principaux lorsque nous travaillons sur les référentiels Git.
Conserver les modifications locales
Dans ce cas, lorsque vos modifications non validées sont importantes pour vous, il existe deux manières de les effectuer :
Tout d’abord, vous pouvez les valider puis appliquer git pull
.
Deuxièmement, vous pouvez les ranger. Précisément, le stashing peut s’expliquer par le fait que nous effectuons un commit, mais ce n’est pas visible à ce moment-là sur votre branche actuelle, mais nous pouvons y accéder par Git. Pour ramener les modifications enregistrées (que nous avons utilisé stash
), nous utiliserons la commande git stash pop
. Cette commande supprimera le commit stash après avoir mis les modifications cachées car nous n’en avons plus besoin.
git fetch (it will fetch the folder for the local machine)
git stash (it will stash the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder)
git stash pop (it will do all stash to latest)
Forcer Git Pull à écraser les fichiers locaux
Dans cette situation, vous souhaitez libérer toutes les modifications locales non validées. Parfois, vous modifiez un fichier juste pour une expérience, mais après cela, vous réalisez que vous ne voulez pas ce changement. Ensuite, tout ce que vous voulez est de le mettre à jour en amont.
Cela ajoutera une étape supplémentaire à cette opération entre la récupération et la fusion. Par conséquent, il réinitialisera la branche à son état d’origine, permettant ainsi à git merge
de fonctionner.
git fetch (fetch the local machine folder)
git reset --hard HEAD (it will remove the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder)
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedInArticle connexe - Git Pull
- Différence entre Git Fetch et Git Pull
- Extraire les modifications d'une autre branche dans Git
- Extraire les modifications d'une branche spécifique dans Git
- Git Pull Master dans la branche
- Remplacer les modifications locales dans Git
- Créer une demande d'extraction à partir de la ligne de commande dans Git