619

git pullディレクトリを吹き飛ばして実行することなく、ローカルファイルの変更を無視する方法はありますgit cloneか?

4

14 に答える 14

1013

プルでローカルの変更を上書きする場合は、作業ツリーがクリーンであるかのようにマージを実行します。作業ツリーをクリーンにします。

git reset --hard
git pull

追跡されていないローカルファイルがある場合はgit clean、それらを削除するために使用できます。

  • git clean -f追跡されていないファイルを削除するには
  • -df追跡されていないファイルとディレクトリを削除するには
  • -xdf追跡されていない、または無視されたファイルまたはディレクトリを削除するには

一方、ローカルの変更をなんらかの方法で保持したい場合は、引っ張る前にstashを使用してそれらを非表示にし、後で再適用します。

git stash
git pull
git stash pop

変更を文字通り無視することは意味がないと思いますが、プルの半分はマージであり、コミットされたバージョンのコンテンツをフェッチしたバージョンとマージする必要があります。

于 2010-11-11T17:25:24.863 に答える
8

git stashを見て、すべてのローカル変更を「stash ファイル」に入れ、最後のコミットに戻します。その時点で、隠した変更を適用するか、破棄することができます。

于 2010-11-11T17:23:58.190 に答える
8

Linux を使用している場合:

git fetch
for file in `git diff origin/master..HEAD --name-only`; do rm -f "$file"; done
git pull

for ループは、ローカル リポジトリで変更されたすべての追跡ファイルを削除するためgit pull、問題なく動作します。
これの最も良い点は、追跡されたファイルのみがリポジトリ内のファイルによって上書きされ、他のすべてのファイルはそのまま残されることです。

于 2012-11-05T23:40:17.803 に答える
8

私は通常、次のことを行います。

git checkout .
git pull

プロジェクトのルート フォルダー内。

于 2019-08-25T00:36:49.117 に答える
2

これにより、現在のブランチが取得され、master への早送りが試行されます。

git fetch && git merge --ff-only origin/master
于 2016-05-05T21:04:33.037 に答える