33

コマンドでわからないことがありgit pullます。と という名前の 2 つのファイルを含むfoobarGit リポジトリがf1ありf2ます。まず、次のコマンドを使用してこのレポを複製します。

git clone git@mycompany:foobar/foobar.git 

f1とファイルの両方に間違った変更をf2加え、Git インデックスに追加してからコミットします。

git add -A
git commit -m 'a test wrong modification'

この変更は間違っていたので、自分のファイルをリモート バージョンに置き換えたいと思います。だから私はこれをするために使用git pullします。

git pull
Already up-to-date.

Git は、プロジェクトが既に最新であると答えます。私がやっていることの何が問題になっていますか?ローカル バージョンをリモート バージョンに置き換えるにはどうすればよいですか?

4

3 に答える 3

77
git fetch origin
git reset --hard origin/master

ここに git pull についての良い説明がありますgit pull

このgit fetchコマンドは、コミットをリモート リポジトリからローカル リポジトリにインポートします。結果のコミットは、これまで作業してきた通常のローカル ブランチではなく、リモート ブランチとして保存されます。これにより、変更をプロジェクトのコピーに統合する前に、変更を確認する機会が得られます。

コマンドgit pull <remote>は、現在のブランチの指定されたリモートのコピーを取得し、すぐにそれをローカル コピーにマージします。git fetch <remote>これは、 が続くのと同じgit merge origin/<current-branch>です。マージを行っているため、コミットはまだそこにありました。

実行後fetch、reset コマンドで作業コピーをリセットできます。Hardローカル コピーの変更を無視することです。git reset --hard origin/master

于 2013-06-27T07:19:01.393 に答える