Je suis nouveau à git. Hier, j'ai apporté des changements à ma branche locale et je l'ai poussé à la branche locale. Maintenant, je voulais faire quelques changements à nouveau et je voulais les repousser à nouveau mais on m'a toujours demandé de tirer. Et si je ne veux pas tirer? Je veux pousser mes nouveaux changements locaux sans tirer. J'ai fait une traction hier mais cela a fusionné mes fichiers et ils sont devenus corrompus car des morceaux de code dupliqués ont été ajoutés par Git pour résoudre le conflit de fusion. Quelqu'un peut-il m'aider avec le processus? Comment commencer et gérer cela? P>
3 Réponses :
Tirez toujours avant une poussée p>
Ceci est une règle de substrat rocheux. Avant d'essayer de pousser le code à la référentiel, vous devez toujours tirer tous les changements de courant de la référentiel à distance à votre machine locale. Cela garantira que Votre copie locale est synchronisée avec le référentiel à distance. N'oubliez pas d'autres les gens poussent à la copie à distance et si vous poussez avant Synchroniser, vous pourriez vous retrouver avec plusieurs têtes ou fusionner des conflits quand vous poussez. Par défaut, Git ne vous permettra pas de pousser les changements sur une branche qui a des engagements distants. Vous pouvez éteindre cette fonctionnalité, mais Ce n'est pas recommandé. P> blockQuote>
Tirez fréquemment p>
sur les grandes équipes, le référentiel central changera en permanence. Vous devriez essayer de garder votre machine locale aussi proche de la télécommande référentiel possible. La façon de faire c'est pour tirer tous les changements sur le serveur distant à votre copie locale. Vous pouvez faire cela aussi souvent que vous aimez, et devrait le faire fréquemment - au moins une fois par jour sinon plus. p> blockQuote>
Et si je veux détruire tous les changements, j'ai poussé et poussez de nouvelles modifications à nouveau?
@Mananrekhi Si vous souhaitez supprimer des modifications locales n'a pas poussé, vous pouvez utiliser git rebase code> sur
goutte code> qui s'engage, mais cela conduira également à certains conflits.Si vous voulez juste Pour combiner plusieurs commits en 1, vous pouvez utiliser
git rebase code> avec
squash code> et la force
la force code> appuyez sur git
Ceci est parce que votre référentiel à distance sur GitHub (quels gros programmeurs professionnels appelle «Origine») Chaque fois que vous créez un github , Toujours exécuter p> Ceci prend le code de GITUB (généralement un Vous pouvez voir en ligne
Si vous êtes toujours confus, Utilisez ceci pour référence . p> p> readme.md code> ou n'importe quel petit fichier que vous avez apporté, personne n'écrit généralement le code source dans GitHub lui-même) en les «récupérant» de GitHub dans votre référentiel local (votre ordinateur), puis «fusionne» les deux référentiels. P>
Git Tirez l'origine Code> et demandez-vous pourquoi "Master" est nécessaire à la fin de la commande. C'est parce que la plupart des développeurs avec beaucoup, de nombreuses branches de leur projet doivent spécifier quelle branche ils tirent. Dans votre cas, c'est juste vous, alors vous n'en avez pas vraiment besoin, mais utilisez simplement le maître de toute façon, sauf si vous avez une raison convaincante de ne pas. P>
Vous devez conserver votre référentiel mis à jour avec les succursales distantes, en particulier maître code>. Vous pouvez simplement le faire en exécutant les commandes ci-dessous
git push origin <branch_name> --force
git push origin <branch_name> -f
Juste une question très noobie à poser. Pour chaque petit changement, dois-je ajouter, commettre et pousser? Existe-t-il une façon de synchroniser des changements directement sur ma branche distante locale?
Vous ne devez appuyer que les modifications significatives à la télécommande. Mais oui, vous devriez ajouter et vous engager dans la branche locale. En outre, juste avant de repousser les modifications à la télécommande, vous pouvez faire squash code> de sorte que de nombreux petits commits puissent être fusionnés en un.