web-dev-qa-db-fra.com

Git fusionner la branche en maître

J'ai une branche principale et un _ branch_1. Je veux bouger' branch_1 exactement comme pour master. Je veux donc quelque chose comme ça:

git checkout master
git merge branch_1 # I don't know what is correct...

Des choses que j'ai faites mais j'ai eu des tas de fichiers gâchés par des conflits ennuyeux. Alors maintenant, master contient exactement les mêmes fichiers de branch_1 en évitant tout conflit, en écrasant simplement les fichiers. De l'aide?

42
Trt Trt

Des conflits vont se produire si les deux branches ont modifié les fichiers. C'est une bonne chose. Garder vos succursales à jour les unes avec les autres en empêchera certaines . Mais dans l'ensemble, les conflits ne sont pas mauvais. L'option de rebase peut également empêcher la plupart d'entre elles de se produire.

git merge branch_1

Si vous êtes sur master, la fusion apportera les modifications que vous attendez.

http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

Vous pourriez aussi

git rebase branch_1

Cela prendra les modifications de branch_1 et les ajouter à master sans commit de fusion.

http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html

50
Schleis

Vous ne devriez peut-être pas fusionner?

  1. Checkout branch_1
  2. Rebaser les modifications principales dans la branche_1
  3. Corrigez toutes les erreurs qui auraient pu se produire après avoir testé votre code
  4. Maître de caisse
  5. Rebaser la branche_1 devient maître

ou en code:

git checkout branch_1
git rebase master
(...)
git checkout master
git rebase branch_1

Cela vous donne également la possibilité d'écraser plusieurs validations en une seule, si vous souhaitez rendre vos ensembles de modifications plus denses, et empêche ces modifications de fusion ennuyeuses dans votre historique.

3
sjas