0
votes

Comment pousser les changements de git sans tirer

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?


0 commentaires

3 Réponses :


0
votes

Tirez toujours avant une poussée

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é.

Tirez fréquemment

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.


2 commentaires

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 sur goutte qui s'engage, mais cela conduira également à certains conflits.Si vous voulez juste Pour combiner plusieurs commits en 1, vous pouvez utiliser git rebase avec squash et la force la force appuyez sur git



0
votes

Ceci est parce que votre référentiel à distance sur GitHub (quels gros programmeurs professionnels appelle «Origine») ne suivent pas automatiquement votre référentiel git local lorsque vous le créez d'abord.

Chaque fois que vous créez un github , Toujours exécuter xxx

Ceci prend le code de GITUB (généralement un readme.md 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.

Vous pouvez voir en ligne Git Tirez l'origine 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.

Si vous êtes toujours confus, Utilisez ceci pour référence .


0 commentaires

0
votes

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


2 commentaires

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 de sorte que de nombreux petits commits puissent être fusionnés en un.