2017-07-17 10 views
3

この投稿は、gitのプルについての私の以前の記事を、次のとおりです。Git: What does EXACTLY "git pull" do?私のブランチを対応するリモートブランチと同じにするには?

はのは、私は特定のブランチに「gitのプル」をやりたいと、私はこのブランチの私のローカルコピーはリモートコピーと同じになりますことをしたいとしましょう遠隔のものどうやってするの?

+1

速い方法:ローカルブランチを削除して、もう一度 –

+2

または 'git reset -hard origin/'をプルしてください。 –

+0

@OliverCharlesworthもちろん、最初のフェッチ後にこれを行います。 –

答えて

4

、最も簡単な方法は、あなたがアップストリームを入力する必要はありませんので、これは特別なFETCH_HEAD REFを使用しています

git fetch && git reset --hard FETCH_HEAD 

であるあなたは、問題の枝の上にすでにしていると仮定すると、(そして、それは正しく上流の追跡です)支店名か他の何か。

+0

あなたは非常に便利です – CrazySynthax

0

git fetchでフェッチした後、git reset @{u}は、その上流を指すようにブランチを設定します。 git reset --hard @{u}は、そのリビジョンを確認し、は、作業ディレクトリの追跡ファイルの変更を完全に破棄します。次のようにbashで行うことができます

あなたも人跡未踏のファイルを破棄したい場合は

、:

bash -c ' 
    GLOBIGNORE=.:.. 
    shopt -s dotglob extglob 
    rm -rf !(.git) 
    git reset --hard @{u}' 
+0

"上流ブランチ"とは、リモートリポジトリの通信支店を意味しますか? – CrazySynthax

+0

@ {u}とは何ですか?それは支店名ですか? – CrazySynthax

+0

@CrazySynthax:私は["upstream"](https://felipec.wordpress.com/2013/09/01/advanced-git-concepts-the-upstream-tracking-branch/)を意味します。 – Ryan

1

Gitは常に引くには2つのことを行います。その後、だからあなたのローカルの変更をドロップするための最良のオプションがフェッチやっている

1) fetches the remote repository 
2) either makes a rebase or a merge 

、お近くの支店が原点/ 枝にリセット

2

これはトリックを行う必要があります。

git fetch 
git reset --hard origin/{insert branch name} 
git clean -fd 

gitignoredを削除するなど、実際に同じにしたい場合は、git clean -fdxを使用してください。

+1

それはすべての場合に仕事をしません。おそらく、プルの結果はローカルバージョンであり、リモートバージョンではありません。 "git reset --hard origin/" – CrazySynthax

+0

@CrazySynthax良いキャッチです。それに応じて更新されます。 – tradeJmark

関連する問題