質問: どうやって "git pull"でローカルファイルを上書きするのですか? どうやってgit pullのローカルファイルを上書きするのですか?シナリオは以下のとおりです。 チームメンバーが取り組んでいるウェブサイトのテンプレートを変更しています 彼らはimagesディレクトリにいくつかの画像を追加しています(しかしソース管理下でそれらを追加することを忘れています) 彼らは後で私にメールで画像を送っています 画像をソース管理下に追加し、他の変更と共にgithubにプッシュします gitは自分のファイルを上書きしたくないので、githubから更新を引き出すことはできません。 これは私が得ているエラーです: エラー:追跡されていない作業ツリーファイル 'public/images/icon.gif'はマージによって上書きされます gitにそれらを上書きさせるにはどうすればいいですか?人はデザイナーです - 通常、私はすべての衝突を手作業で解決しますので、サーバーには最新のバージョンがあり、それを自分のコンピューターで更新するだけです。
回答: ハリネズミのように私は答えがひどいと思います。しかしhedgehogの答えはもっと良いかもしれませんが、私はそれがそれができるほどエレガントであるとは思いません。私がこれを行うために見つけた方法は、定義された戦略で "フェッチ"と "マージ"を使用することです。上書きを強制しようとしているファイルの1つではない限り、ローカルの変更は保持されるようになります。 まずあなたの変更をコミットする git add * git commit -a -m "local file server commit message" それから変更を取得し、衝突があれば上書きします git fetch origin master git merge -s recursive -x theirs origin/master "-x"はオプション名、 "theirs"はそのオプションの値です。競合がある場合は、「あなたの」変更ではなく「彼らの」変更を使用することを選択しています。