移動現であり、未確定の作業を新たに支店(分Git
-
21-09-2019 - |
質問
私の仕事は新しい特徴後にコーディングょっとこの機能は独ります。
していくといった既存の未確定の変更新たに支店を設現。
したいリセットの現在の支店を守りながら、既存の作業の新たな特徴です。
解決
使用以下ます:
git checkout -b <new-branch>
これがあるとして、あなたの現在のブランチを残し作成し、新しいブランチをチェックアウトし、すべての変更を維持します。あなたは、その後にコミットすることができます:
git add <files>
として、あなたの新しいブランチにコミットします:
git commit -m "<Brief description of this commit>"
作業ディレクトリの変更や変更にはまだ枝にも属していないインデックスで上演しました。これらの変更はで終わるだろう。この変化ます。
そのままあなたはがの元のブランチをリセットしません、それがまま。最後<old-branch>
にコミットまだ同じになります。したがって、あなたはcheckout -b
、その後コミットます。
他のヒント
補償光学(ao)および可
保存現在の変化を温度を隠:
$ git stash
を作成しましたので、この貯蔵庫は、スイッチの新しい支店:
$ git stash branch <new-branch> stash@{0}
ヒント:使用タブキーの削減を打つ、赤名です。
また犯 ご本店をコードすが、現したいと考え方を継続することを約束異なる支店:
コピーを現在の歴史に新たに支店、沿い未確定の変更をもたらせ
git checkout -b <new-feature-branch>
現在のオリジナルの"乱れ"の店頭でのロールバック:(切替)
git branch -f <previous-branch> <earlier-commit-id>
例えば:
git branch -f master origin/master
また4犯:
git branch -f master HEAD~4
警告: れ git branch -f master origin/master
ま リセットトラッキング情報 のための事が分かりました。で設定した場合にお master
支店を押しかにこれ以外の origin/master
その設定が失われようとしています。
代わりに使用 この技術をリセット.その指示を破棄してしまいますの他未確定の変更ます。長期保存を希望する場合、隠しやunstashします。
一般的なシナリオは以下の通りである:私は、新しい機能のための新しいブランチを作成するのを忘れて、古い機能ブランチにすべての作業をしていました。私は、masterブランチにすべての「古い」作業をコミットしている、と私は私の新しいブランチが「マスター」から成長したいです。私は、単一のは私の新しい仕事のコミット行っていません。 ここで分岐構造は次のようになります。 "マスター" - > "Old_feature"
git stash
git checkout master
git checkout -b "New_branch"
git stash apply
I使用 @Robin に答え&Iがやったことをすべてを一覧表示する、
git status <-- review/list uncommitted changes
git stash <-- stash uncommitted changes
git stash branch <new-branch> stash@{1} <-- create a branch from stash
git add . <-- add local changes
git status <-- review the status; ready to commit
git commit -m "local changes ..." <-- commit the changes
git branch --list <-- see list of branches incl the one created above
git status <-- nothing to commit, working tree (new-branch) is clean
git checkout <old-branch> <-- switch back
の のレポが複数のスタッシュを持っている場合は、新しいブランチに適用する1を参照してください!
git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
と
、によって個々のスタッシュを検査git stash show stash@{1}
:一度にすべてのスタッシュをまたは点検
git stash list -p