2016-03-29 17 views
0

私は自分のリポジトリにunstaged/untrackedの変更があったので、新しいブランチを作成して移動して、 。変更されていない変更があるブランチから別のブランチに移動する

私はstackoverflowの上でこの質問を見つけました:

Take all my changes on the current branch and move them to a new branch in Git

私はその永遠に答えを理解することができませんでした。

基本的に私が理解は、私がしなければならないということです:gitのは私が最初にコミットしたりせずに別のブランチをチェックアウトすることができないだろうと


一つ

はスタッシュに私の変更を追加します。私の変更をスタッシュ

私は3

について1と2ではなく、確かに行う方法を知って新しい新しいブランチにコミット


としてスタッシュを適用

新しいブランチを作成し、チェックアウト

上記のスタックオーバーフローに関する質問の1つは、

//comments are my understanding on what is happening 
//not necessarily true 
git stash          //add to stash 
git checkout -b edge master     //create new Bracnh and checkout to it 

//Not sure what is happening in the below two lines 
git branch -f master SHA1_before_your_commits //reset master to the last commit 
git stash apply    // apply stash to branch,now I can commit to the new branch 
です。

答えて

2

例えば、ちょうど、変更をコミットする新しいブランチを作成し、コミット前のにマスターをリセットします。ここでは

はそれを行う方法のデモがあります

git commit -a 
git branch newBranch 
git reset --hard HEAD~ 
git checkout newBranch 
+0

私はこのように私の変更を緩和しませんか?私は頭をリセットするときを意味する? – Snedden27

+0

いいえ、あなたはあなたの変更を失うことはありません。彼らはブランチ_newBranch_で安全です。あなたが私を信じていない場合は、おもちゃのリポジトリで試してみてください。 – jil

1

私は自分のリポジトリにunstaged/untrackedの変更があり、新しいブランチを作成して移動し、これらの変更をマスターではなく新しいブランチにコミットしたいと考えています。 GitのV2.5を使用して

は、次の操作を行います。

git worktree add <new_path> 

は今、あなたはあなたの枝のいずれかでやりたいです。同じリポジトリを指している間に、2つの別々の作業フォルダが作成されます。

wortreeを使用すると、ステージに入ったコンテンツと追跡されていないコンテンツをすべて削除するために、clearまたはresetを実行する必要はありません。

enter image description here

+0

今、それを文書に探してあなたの答えをありがとう..それは:( – Snedden27

+0

かなりシンプル、クールをgitのために来るとき最もシャープをunderstand.Notしようとしている:あなたはを指す新しいディレクトリを追加します同じリポジトリが3つの状態は空です。(3州=作業場、舞台区域、ローカルレポ) – CodeWizard

+0

必要なら何でもお気軽にお問い合わせください。必要に応じてすぐに病気になります。 – CodeWizard

関連する問題