Git プルにローカルファイルを上書きさせる

Abdul Jabbar 2023年1月30日
  1. ローカルの変更を保持する
  2. Git プルにローカルファイルを上書きさせる
Git プルにローカルファイルを上書きさせる

Git リモートリポジトリから何らかのプルを実行するための最初のタスクの 1つである場合、新しいユーザーにとって Git は少し難しいです。次に、Git にいくつかのローカルファイルを上書きさせる実行可能なアプローチを見つけます。

間違いなく、Git はチームの作業を管理するための非常に効果的なツールです。Git を賢く使うには、いくつかの重要な原則を認識する必要があります。良いことは、それらを適切に学ぶとき、あなたが逃げることができない問題に遭遇することはめったにないかもしれないということです。

通常の Git ワークフローでは、1つまたは複数のブランチを持つリモートリポジトリであるローカルリポジトリを使用します。リポジトリは、プロジェクト全体の履歴とすべてのブランチを含む、プロジェクトに関するすべての記録を保持します。ブランチは、空のプロジェクトから現在の状態に至る変更のグループです。

ローカルファイルで作業して新しい変更を導入する場合は、ローカルの変更をリモートリポジトリにプッシュする必要があり、ローカルの変更がリモートリポジトリにプッシュされるまで、すべての作業がマシンで利用可能になります。問題は、チームが同じことに取り組んでいて、同じ場所で変更を加えたいときに始まります。

プルは、リモートブランチからデータをフェッチし、その変更をローカルリポジトリにマージするという、複数の操作に基づいています。上記の操作は、以下のコマンドを使用して手動で実行できます。

git fetch
git merge origin/$CURRENT_BRANCH

ここでは、Git リポジトリで作業する際の 2つの主要な選択肢があります。

ローカルの変更を保持する

この場合、コミットされていない変更が重要である場合、それらを実行する方法は 2つあります。

まず、それらをコミットしてから、git pull を適用できます。

第二に、あなたはそれらを隠しておくことができます。正確には、スタッシングはコミットを行うと説明できますが、その時点では現在のブランチには表示されませんが、Git からアクセスできます。保存された変更を元に戻すには(stash を使用しました)、コマンド git stash pop を使用します。このコマンドは、スタッシュされた変更を配置した後、スタッシュコミットを削除します。これは、不要になったためです。

git fetch (it will fetch the folder for the local machine)
git stash (it will stash the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder) 
git stash pop (it will do all stash to latest)

Git プルにローカルファイルを上書きさせる

この状況では、コミットされていないローカル変更をすべて解放する必要があります。実験のためだけにファイルを変更することもありますが、その後、その変更を望まないことに気付きます。次に、必要なのはそれをアップストリームに更新することです。

これにより、この操作でフェッチとマージの間にもう 1つのステップが追加されます。したがって、ブランチを元の状態にリセットし、git merge が機能できるようにします。

git fetch (fetch the local machine folder)
git reset --hard HEAD (it will remove the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder)
著者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

関連記事 - Git Pull