2016-01-08 33 views
10

は最近、私は私の枝が分岐した通知に出くわしました。それはフィーチャーブランチを作ってリモートにプッシュし、数日後に再びマスターを開始したときにマスターとリベースしたときでした。rebase後にGitブランチが分岐したので、なぜrebaseですか?

git checkout -b feature-branch 
git push origin feature-branch:feature-branch 

...とマスターで...

git pull origin master 
git checkout feature-branch 
git rebase master 

しかし、私は再び私のブランチをプッシュするとき、それは言う:

On branch feature-branch 
Your branch and 'origin/feature-branch' have diverged, 
and have 67 and 1 different commit each, respectively. 

私は "この答えを見つけましたGit branch diverged after rebase ":

すでにブランチをプッシュしていたので、再配置するのではなく、 ソースブランチでマージする必要があります。

質問

thisを読んだ後、私はまだ完全に私は私の流れでは異なってやったべきか理解していない、と私はまだGitのリベースを使用することにしたい理由。誰かがこれを説明することを望む、ありがとう!

+0

何についてのプッシュ-fで詳細を参照してください?あなたのリンク(http://stackoverflow.com/a/26349885/6309)に記載されています。あなたが単独でこの支店で働いているなら、あなたは強制的に押すことはできません。 – VonC

+0

次に、あなたのためのリベースを私はチームで仕事しないので、私はリモートブランチを上書きすることは良いアイデアではないと思います... – Amber

+0

。マージのみ。 – VonC

答えて

10

アイデアは、あなたの地元コミットを再生するために、あなたはまだプッシュされていない場合にのみリベースすることです。

プッシュして(チームで作業している)すぐにmasterの上にブランチをリベースしないでください。ブランチのSHA1が書き換えられ、ブランチの新しい状態を強制的にプッシュする必要があります。そして、あなたができるより多くのコミット、あなたがローカルで競合を解決し、定期的なプッシュ:

http://rypress.com/tutorials/git/media/5-1.png

あなたのブランチにgit merge masterを作ることはここに好適です。

http://i.stack.imgur.com/wBMwq.png

は " What is the difference between merging master into branch and merging branch into master?"

+0

あなたの説明をありがとう!それはもっと明確になります:) – Amber

+0

@Glutttonはい、ありがとうございます。私はこのタイプミスを修正する答えを編集しました。 – VonC

関連する問題