私はマスターであり、後でstashコマンドを使わずに(変更されたファイルとuntrackedファイルの)変更を保存したいとします(私はstash
とpop
に慣れています。そして、これらの変更は重要な変更を意図しているので、私はむしろ、この変更を独自の支店で「保存」したいと考えています。1つのブランチでのみファイルをステージングする方法は?
どうすればいいですか?ここで
は...予想外の(私にとっては) 結果とワークフロー例である
#(master)# git status
On branch master
nothing to commit, working tree clean
#(master)# git touch b.txt
#(master)# git status
On branch master
Untracked files: b.txt
Nothing added to commit but untracked files present
#(master)# git checkout -b branch
Switched to a new branch 'branch'
#(branch)# git status
On branch branch
Untracked files: b.txt
Nothing added to commit but untracked files present
#(branch)# git add .
#(branch)# git status
On branch branch
Changes to be committed: new file: b.txt
#(branch)# git checkout master .
Switched to a branch 'master'
#(master)# git status
On branch master
Changes to be committed: new file: b.txt
→この変更は唯一の他のブランチで を上演していませんか?今から私は戻って私ができるマスターブランチの前の状態に戻りたい場合は:
は、それを削除して、このファイルを削除します。だから、私はきれいなマスターブランチを持つことを期待ではなく、私は次のようだ:Gitは他の枝に加えられた変更を見たのはなぜ→
#(master)# rm b.txt
#(master)# git status
On branch master
Changes to be committed: new file: b.txt
Changes not staged for commit: deleted: b.txt
?ステージングエリア(インデックス)がブランチごとにないのですか?
→なぜgitはコミットされていないので、削除を変更として見たのですか?ファイルもマスターにもう人跡未踏ないので動作しません
clean -fd
コマンド..
いや、クリーンな..reset
コマンドを使用して(--HARD
を指定するか、後でファイルを削除してください)。
いいえ、それはステージング領域から(実際には期待通りに)ファイルを削除します(そして失う)。
は、私がどのように動作するかgitの枝(基本的なレベルで)知っていたと思った..しかし、それはないようです...それでは、どのように私はブランチ単位に変更をステージングすることができますか?
私は、自分が隠したり、実際に変更をコミットすることで、自分が望むものを達成できることを知っています。
私はちょうど偶発的な変更を失うことを恐れているpop
。
実際のコミットに関して、私はちょうど中間状態にあり、まったく準備ができていないその開始された変更をコミットしたくありませんでした。
...多分これが唯一のソリューションですコミット--amend
その後、私は可能性が実際に..
は枝がちょうどへのポインタなので...
私はいつもその機能を継続するのか分からないので、隠しは良い選択肢ではありません。しかし、私は間違いなくコミットが作品を保存する意味であると考えるべきです。私は私のレポで私が望むことをして、あなたが示唆したようにリベースすることもできました。はい、これは理にかなっています。私は 'rebase'についてもっと学ぶ必要があります。ありがとうございました。 – SanjiBukai