私はGitで働いています。隠し場所の内容を削除して、その際に発生するマージの競合を隠す。私は次のことをしています:私の隠しを新しいブランチに適用し、隠されているものですべてをオーバーライドしたい
git checkout -b *newbranchname*
git stash apply
そして、私はファイル内のマージの競合を教えています。どうすれば端末でこれを行うことができ、具体的に対処しなくても自動的に紛争の隠れ家を好むことができますか?私の意見で
私はGitで働いています。隠し場所の内容を削除して、その際に発生するマージの競合を隠す。私は次のことをしています:私の隠しを新しいブランチに適用し、隠されているものですべてをオーバーライドしたい
git checkout -b *newbranchname*
git stash apply
そして、私はファイル内のマージの競合を教えています。どうすれば端末でこれを行うことができ、具体的に対処しなくても自動的に紛争の隠れ家を好むことができますか?私の意見で
、最も簡単な方法は、代わりに
:-)、独自のブランチにごgit stash
内容を向ける「ことを実行しない」である。
git stash branch newbr
今、あなたは持っています新しいブランチnewbr
(インデックスにはgit add
のアイテムがあった場合)とコミットする準備が整っていて、スティッシュごとに変更された作業ツリーはgit add
となりコミットされます。注意深く追加したことがある場合は、先に進んでコミットしてから、すべてを追加してもう一度コミットしてください。そうでない場合は、今すぐすべてを追加してコミットしてください。今度は、新しいブランチnewbr
を1つまたは2つコミットしています。どれくらい多くのものがgit commit
の数に依存するのですか?git stash
を実行したときにコミットしたものと結合します。
異なる開始点から別の新しい分岐を作成することができます(希望の場合)。git cherry-pick
を使用してそれらのコミットを引き継ぎ、新しい分岐を破棄できます。または、git rebase -i
(<upstream>
とオプションの場合は--onto
引数)を使用して、通常のリベース方式のどこかでコミットをコピーし、コピーが完了したら元のコミットを破棄することができます。または、既存の開始点newbr
が結局望むものであれば、すでにすべて設定されています。
あなたは本当にはがちょうど完全にそれらのファイルの現在のバージョンを無視して、競合ファイルの作業ツリーのバージョンをチェックアウトしたいならば、あなたは非常に簡単にそれを行うことができ、言ったすべてのこと。覚えておくべき事は(いくつかの数Nまたは[email protected]{N}
)参照名stash
コミットw
ORKツリーを参照していることである、それはstash bagのi
とw
コミットを保存した際に行われているgit stash
。したがって:
git checkout stash -- path/to/file
インデックス(従って任意の競合マージを解決する)、完全にそのファイルのHEAD
バージョンを無視を通してそれを書き込み、path/to/file
のw
バージョンを抽出します。
(ファイルのi
NDEXコミットバージョンはstash^2
にあり、人跡未踏があれば、私はthat other answerで述べたように/すべてのファイルがコミット、それらのファイルは、stash^3
である。コミットw
は技術的にマージされますが、それはです通常のマージではなく、特にすべてのファイルコミットは、のファイルとインデックス/作業ツリーファイルがないため、非常に珍しいです。)
あなたは結果を好きかどうかを確認するために
git merge-recursive --theirs stash^ -- @ stash
を試みることができます。