如何让我的分支与其对应的远程分支相同?

时间:2017-07-17 08:58:10

标签: git

这篇文章是关于我之前关于git pull的帖子:Git: What does EXACTLY "git pull" do?

假设我想对某个分支执行“git pull”,并且我希望我的本地分支对于远程副本的远程副本是IDENTICAL。怎么做?

4 个答案:

答案 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}'