1. ホーム
  2. git

[解決済み] git pull ローカルな変更を維持する

2022-04-21 01:09:55

質問

上流で変更があった場合でも、特定のファイルに手をつけず、安全に git プロジェクトを更新(pull)するにはどうすればよいですか?

myrepo/config/config.php

このファイルがリモートで変更されていたとしても、git pull すると他のファイルはすべて更新されるが、このファイルは変更されない(マージすらされない)、というようなことはあるのでしょうか?

PS. 私はgitベースのデプロイスクリプトを書くだけなので、私が尋ねることを行う必要があります。私は設定ファイルをテンプレートに変更することはできません。

そのため、ローカルで変更されたものを失わないような更新スクリプトを書く方法が必要です。私は、次のような単純なものを期待していました。

git assume-remote-unchanged file1
git assume-remote-unchanged file2

では git pull

解決方法は?

Git stashを使ったシンプルな解決策があります。 変更したものをすべて隠しておき、新しいものをすべて引き出して、隠したものを適用するのです。

git stash
git pull
git stash pop

スタッシュポップでは、コンフリクトが発生する可能性があります。 あなたの言うような場合、実際には config.php . しかし、このコンフリクトを解決するのは簡単です。なぜなら、スタッシュに入れたものが自分の欲しいものであることが分かっているからです。 だから、こうしてください。

git checkout --theirs -- config.php