2011-10-20 19 views
6

時々私は自分自身を次のような状況で見つけます: 私はブランチで作業しています(マスターと言う)コミットの時間が来る私は、新しいブランチにコミットすることを好むと思う。つまり、古い枝(マスター)がそのまま残る必要がありますし、新しいブランチは次のようになりますが作成する必要があります。git:現在のブランチで現在コミットされていない作業を新しいブランチにコミットします

.. -- master -- new commit 

それを行うための最も簡単な方法は何ですか?

現在、古いブランチにコミットしてから、新しいブランチを作成し、最後に古いブランチをリセットします。しかし、それは本当に醜いです。

+2

[Git:既存の作業を新しいブランチに移動する方法は?](http://stackoverflow.com/questions/1394797/git-how-to-move-existing-work-to-new-branch) – brendan

答えて

4
git checkout -b branch  # create new branch out of current head 
git add <files>    # the changes you had done in your working directory will be carried over 
git commit -m "message"  # commit! 
+0

その質問に記載されていますが、「コミットの時間が来たら、私は新しい支店にコミットしたいと思っています」 – COD3BOY

+0

@Sanjay - あなたのポイントは? – manojlds

+0

@ user1004474 - 試してみてください。ブランチを切り替えると、ステージングされていないステージとステージの両方の変更がそこにあります。 – manojlds

1

あなたが最初に新しいブランチを作成した場合、それは少し簡単です:

$ git checkout -b new_branch 
$ git commit 
+0

ポイントは私がこれを事前に計画していなかったので、最初に変更が加えられました(git addでインデックスに追加された可能性があります)。 – tros443

+0

@ user1004474:それでも動作します。変更があったかどうか、インデックスに追加されたかどうかにかかわらず、 'git checkout -b new_branch'を実行することができます。 – hammar

+0

はい、あなたは正しいです – tros443

0

新しいHEADから別のブランチを切った後、先に行くとmasterブランチにそれらをコミットするために別の可能性があります(例えば、feature)。これが完了したら、コミット前の位置にgit resetマスタを置くことができます。

+0

あなたは '現在、古いブランチにコミットしてから新しいブランチを作成し、最後に古いブランチをリセットしました。しかし、それは本当に醜いです。 – manojlds

+0

うん。私は逃しました。私はFWIWでも醜いとは思わない。 –

+0

Getは簡単に行えますが、醜いIMOです – manojlds

関連する問題