这篇文章是关于我之前关于git pull的帖子:Git: What does EXACTLY "git pull" do?
假设我想对某个分支执行“git pull”,并且我希望我的本地分支对于远程副本的远程副本是IDENTICAL。怎么做?
答案 0 :(得分:6)
假设您已经在相关分支上(并且它正确跟踪上游),最简单的方法是
git fetch && git reset --hard FETCH_HEAD
这使用特殊的FETCH_HEAD
引用,因此您无需键入上游分支名称或其他任何内容。
答案 1 :(得分:2)
这应该可以解决问题:
git fetch
git reset --hard origin/{insert branch name}
git clean -fd
如果您希望它真的相同,包括移除gitignored内容,请使用git clean -fdx
。
答案 2 :(得分:1)
Git pull总是做两件事。
1) fetches the remote repository
2) either makes a rebase or a merge
因此,删除本地更改的最佳选择是进行提取,然后将本地分支重置为origin / 分支
答案 3 :(得分: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}'