2017-03-13 10 views
1

あなたのmaster/developmentブランチをgitの機能/作業ブランチにマージすることについて質問があります。誰かが(もしあれば)次のコマンドの違いを説明してください。私の支店は開発から分岐しており、私は最新の開発変更でそれを更新したいと考えています。 git-merge manualからGitマージとスラッシュなし

git merge origin development 
git merge origin/development 
+1

[この](http://stackoverflow.com/questions/14243569/is-there-any-difference-between-git-merge-origin-master-and-git-merge-origin)あなたが役立ちます理解してください –

答えて

1

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>…
コミット、通常、他のブランチヘッドは、私たちのブランチにマージします。

複数のコミットを指定すると、2つ以上の 親を持つマージが作成されます(Octopusマージとも呼ばれます)。


git merge origin development 

これはあなたの現在のブランチにorigindevelopment(この場合には、これは支店の名前になります)で指定された2コミットをマージします。

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

これは、あなたが(私は、あなたもoriginと呼ばれる枝を持っていないと推定)欲しいものはおそらくではありません。

(1)あなたが持っている場合を除き、リモート呼ばorigin(可能性が高い)、その後、originはリモート参照origin/HEADとして解釈されます。


git merge origin/development 

これは、単一のがあなたの現在のブランチに(remote referenceです)origin/developmentで指定されたをコミットマージします。

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

これはドキュメントが示していることを正確に反映しているようですが、観察された動作は異なります。 'origin'ブランチを持たない(しかし' origin'リモート)私は 'git merge origin'を行うことができますし、*上記の説明が完了した場合にはエラーになりません。私はこれについての説明はまだありませんが、観察された動作のみです。 gitはリモート名を参照として解釈するいくつかの定義された方法を持っていると仮定します。 –

+0

そしてその答えは質問のコメントに現れます: 'origin /'は明らかに 'origin/HEAD'を意味します。 –

関連する問題