2017-03-13 4 views
1

J'ai une question sur la fusion de votre branche maîtresse/développement dans votre branche fonctionnalité/travail dans git. Est-ce que quelqu'un peut expliquer s'il y a une différence dans les commandes suivantes? Ma branche a été ramifiée du développement et je veux le mettre à jour avec les derniers changements de développement.Git Fusion avec et sans barre oblique

git merge origin development 
git merge origin/development 
+1

[Ce] (http://stackoverflow.com/questions/14243569/is-there-any-difference-between-git-merge-origin-master-and-git-merge-origin) vous aide pour comprendre –

Répondre

1

De l'git-merge manual:

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] 
    [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]] 
    [--[no-]allow-unrelated-histories] 
    [--[no-]rerere-autoupdate] [-m <msg>] [<commit>…​] 

...

<commit>…
commits, généralement d'autres têtes de branche, de se fondre dans notre branche.

La spécification de plusieurs validations crée une fusion avec plus de deux parents (affectueusement appelée fusion Octopus).


git merge origin development 

Ce fusionnerait les deux commits spécifiées par origin et development (dans ce cas, ce serait le nom des branches 1) dans votre branche courante.

o--o  origin 
    \ 
o--o \ development 
    \ | 
    \| 
o--o--o your-branch 

C'est probablement pas ce que vous voulez (je suppose que vous n'avez même pas une branche appelée origin).

(1) Sauf si vous avez un appelé à distance origin (ce qui est probable), alors origin sera interprété comme la référence à distance origin/HEAD.


git merge origin/development 

Cette fusionnerait la commettras unique spécifié par origin/development (qui est un remote reference) dans votre branche courante.

o--o  origin/development 
    \ 
    \ 
o--o--o your-branch 
+0

Bien que cela semble refléter exactement ce que dit la documentation, le comportement observé est différent. N'ayant pas de branche 'origin' (mais une' origin' distante) je peux faire 'git merge origin' et cela ne * pas * d'erreur (comme si l'explication ci-dessus était complète). Je n'ai pas encore d'explication pour cela, seulement un comportement observé. Je suppose que cela signifie que git a une certaine façon définie d'interpréter un nom distant comme référence –

+0

Et la réponse apparaît dans les commentaires de la question: 'origin' comme ref signifie apparemment' origin/HEAD' –