2013-03-31 17 views
19

私は、現在のブランチからマスターへのすべてのコミットをrebaseしてスカッシュします。ここで私は何をしようとしているものです。この場合、Git:ブランチからマスターへのリベースとスカッシュのコミット方法は?

git rebase -i master 

がコミットはnew-featureブランチで

git checkout master 
git rebase -i new-feature 
ままになります:それは私がしようとしていた後

git checkout -b new-feature 

は、コミットのカップルを作ります

私にはnoopメッセージで編集ウィンドウが表示されます。

私は、コマンドについて知っている:

git merge --squash new-feature 

しかし、私は現在、rebaseコマンドの学習に取り組んでいます。

答えて

4

リベースするとき、Gitはコミットを別のブランチに移動しません。すべてのコミットを含むブランチを移動します。マスター・ブランチの上にリベースした後にコミットを取得する場合は、git merge <branch tip or commit of branch>を使用して、マスター・ブランチをそのコミットに早送りします。

45

手順を実行します。

1 - 私たちは

git checkout -b new-feature 

2新機能ブランチを作成する - 今、あなたは追加/削除、更新したいものは何でもあなたの新しいブランチに

git add <new-file> 
git commit -am "Added new file" 
git rm <file-name> 
git commit -am "Removed a file" 
cat "add more stuff to file" >> <new-file> 
git commit -am "Updated files" 

3することができます - 次に、選択し、スカッシュ任意の素晴らしいコミットメッセージにコミットする

git rebase -i master 

ここで覚えておくべき重要なことは最初のコミット後のすべてのコミットについて、 "pick"を "squash"に変更します。これにより、すべてのコミットがマスターブランチにスワッシュされます。

4 -

git checkout master 

5 masterブランチを選択 - HEADと新機能がある場合に、masterブランチに移動:

git rebase new-feature 

あなたはこの中にすべてのコマンドを試してみることができますが視覚的ツール: http://pcottle.github.io/learnGitBranching/

+5

「これを行う前にコミットせずにスカッシュできません」というメッセージが表示されます。 http://stackoverflow.com/questions/2563632/how-can-i-merge-two-commits-into-one – backdesk

+0

ニース...私は通常私のコミット 'git rebase -i HEAD〜##'をスカッシュしますがプル/リベース 'git pull --rebase origin master'私はリベースの前/後を見直すことができます。 – Tracker1

+1

この回答は、 – fernandopasik

関連する問題