web-dev-qa-db-ja.com

gitで複数のブランチをマージする

「開発」と「マスター」という2つのローカルブランチがあります。彼らは似ています。私の会社のサーバーには、1つの「メイン」リポジトリ(本番)と、他の開発者によって作成されたいくつかのブランチがあります。

 $ git branch -a 
 * develop 
 master 
 remotes/Origin/HEAD-> Origin/master 
 remotes/Origin/some-test 
 remotes/Origin/feature1 
 remotes/Origin/feature2 
 remotes/Origin/master 

どうすればマージできますremotes/Origin/feature1およびremotes/Origin/feature2ローカルの「マスター」ブランチにコピーし、それをすべて「開発」にコピーして、「開発」ブランチで実際のコードの操作を開始しますか?

27
Chvanikoff
  1. git checkout master
  2. git pull Origin feature1 feature2
  3. git checkout develop
  4. git pull . master(またはgit rebase ./master

最初のコマンドは、現在のブランチをmasterに変更します。

2番目のコマンドは、リモートのfeature1およびfeature2ブランチから変更をプルします。 2つ以上のブランチをマージするため、これは「タコ」マージです。必要に応じて、2つの通常のマージを実行することもできます。

3番目のコマンドは、developブランチに切り替えます。

4番目のコマンドは、ローカルmasterからdevelopへの変更をプルします。

お役に立てば幸いです。

編集:git pullは自動的にfetchを実行するため、手動で実行する必要はありません。 git fetchの後にgit mergeを続けたものとほぼ同じです。

37
Cameron Skinner

Originをすべて「フェッチ」します。

git fetch Origin

リポジトリにあるので、ブランチをマスターにマージできます:

git checkout master

git merge Origin/feature1 

git merge Origin/feature2 

これでマスターを開発にマージできます

git checkout develop
git merge master 

originにコミットする場合は、ローカルトラッキングブランチを設定して、ローカルアクセスと直接Originにプッシュできるようにします。

git branch --track Origin/feature1 feature1
9
Brandon