2016-10-08 19 views
20

私はSourceTree GUIを使ってgit rebaseを行う方法を混乱させると思います。私は2つの支店 "master"と "dev"を持っています。このように、2つの分岐は分岐していた。私は「DEV」を右クリックすると予想され、上に現在の変更をリベース」を選択しているだろうsourcetreeを使ったgit rebase

git checkout dev 
git rebase master 

enter image description here

:私は、これは次のようになり、コマンドラインを使用して、「DEV」ブランチにリベースをしたいですdev "私は現在の変更が "新しいコミットマスター"を意味すると仮定します。しかし、このオプションを選ぶことは何の効果もないようです。正しい手順は何でしょうか?

答えて

25

しかし、このオプションを選択しても何の効果もないようです。

はい、現在の変更は現在のブランチの1つで、devです。

リベースdevの上にdevはノーオペレーションを意味します。

git checkout dev 
git rebase master 

意味:現在のブランチがdevです:masterの上にリベースされます。

だから、SourceTreeに(devがチェックアウトされている間)、あなたはmaster上で右クリックする必要があり、かつ選択:// stackoverflowの:コンテキストについては

Rebase current changes onto master 
+3

を、downvoteは[デッドマン](HTTPからです。 SourceTreeにはまったく対処せずに[前の方の回答](http://stackoverflow.com/a/39929671/6309)を投稿したユーザー(com/users/2586651/deadman)私はコメントで私の批判を落として説明した。明らかに、デッドマンは私が作った建設的な発言に感謝しなかった。 – VonC

+1

マスターブランチが変更されますか?私はちょうど私のdevブランチをマスターブランチの最新の変更で更新し、後で私のdevブランチをマスターにマージしたいと思います。記載された方法でこの作業を行いますか? – Gerfried

+1

@Gerfriedいいえ、それはマスターを変更しません。リベースのすべてのアイデアはブランチの上にコミットを再生することです(それはそのリベースによって使用されていることを認識しません)。しかし、あなたの場合(私はちょうど私のdevブランチを最新のmasterブランチの変更で更新したいと思います)、特にあなたが既にdevをプッシュしている場合はマージが望ましいです。 – VonC