ローカル ファイルを強制的に上書きするにはどうすればよいですかgit pull
? ローカル リポジトリには、サーバー上のファイルと同じファイル名のファイルが含まれています。
エラー: 追跡されていない作業ツリー ファイル 'example.txt' はマージによって上書きされます
ベストアンサー1
⚠ 警告:
追跡されたファイルに対するコミットされていないローカルの変更は、ステージングされていても失われます。
ただし、 Git によって追跡されていないローカル ファイルは影響を受けません。
まず、すべてのorigin/<branch>
参照を最新のものに更新します。
git fetch --all
現在のブランチをバックアップします (例master
):
git branch backup-master
最新のコミットにジャンプしてorigin/master
、それらのファイルをチェックアウトします。
git reset --hard origin/master
説明:
git fetch
マージやリベースを試みることなく、リモートから最新のものをダウンロードします。
git reset
マスター ブランチを、取得した内容にリセットします。この--hard
オプションは、作業ツリー内のすべてのファイルを のファイルと一致するように変更しますorigin/master
。
現在のローカルコミットを維持する
[*] : リセット前のブランチを作成することで、現在のローカルコミットを維持できることは注目に値しますmaster
。
git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master
この後、古いコミットはすべて に保存されますnew-branch-to-save-current-commits
。
コミットされていない変更
コミットされていない変更は、ステージングされていても( を使用してgit add
)失われます。stash
必要なものは必ず またはコミットしてください。たとえば、次を実行します。
git stash
そして後で( の後にgit reset
)、コミットされていない変更を再適用します。
git stash pop
マージの競合が発生する可能性があります。