コミットせずに Git Stash の競合を解決する
この記事では、コミットを元に戻したり作成したりせずに Git stash の競合を解決するために従うべき手順の概要を説明します。 コンテキストを簡単にするために、git stash pop
コマンドが競合を引き起こし、コミット用のファイルを追加せずに競合を解決しようとする状況をシミュレートします。
コミットせずに Git Stash の競合を解決する
VSCode で、README.md
ファイルを開き、保存して、最後に行を追加し、変更を隠します。
$ git stash
Saved working directory and index state WIP on Dev2.1: 8b5cc6c Zesr
次に、README.md
ファイルの最後に別の行を追加し、保存して、変更をコミットします。
これで、git stash pop
コマンドを実行できます。
$ git stash pop
コミット用のファイルを追加せずにこれを解決するには、次の手順に従います。
最初のステップは、マージの競合を解決することです。 Git にはデフォルトの mergetool
がありますが、Meld
を使用することをお勧めします。
Meld を使用する場合は、デフォルトのマージおよび difftool
として構成されていることを確認してください。
以下のコマンドを実行して Meld を起動し、競合を手動で解決します。
$ git mergetool
マージの競合に対処した後、作業ツリーの状態を簡単に確認しましょう。
$ git status
上記の出力に見られるように、Git はコミットのためにファイルをステージングしました。 ファイルのステージングを解除するには、推奨されるコマンドを実行する必要があります。
$ git restore --staged README.md
作業ツリーを確認してみましょう。
$ git status
Git はマージ後に stash を自動的に削除しないことに注意してください。 次を実行してドロップする必要があります。
$ git stash drop
結論として、Git の競合を解決済みとしてマークする方法は 2つあります。 git add
または git restore --staged
コマンドを使用できます。
後者は競合を解決し、インデックスからファイルを削除します。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn