我有两个分支:

当地分公司(和我一起工作的那家) 远程分支(公共的,只有经过良好测试的提交才会去那里)

最近我把我当地的分公司搞得一团糟。

如何将本地分支完全替换为远程分支,以便从远程分支现在所在的位置继续工作?

我已经搜索了SO,在本地签出到远程分支没有任何影响。


当前回答

用远程分支替换所有内容;但是,只能从本地分支打开的同一个提交:

git reset --hard origin/some-branch

或者,从远程分支获取最新的并替换所有内容:

git fetch origin some-branch
git reset --hard FETCH_HEAD

顺便说一句,如果需要,你可以清除你还没有提交的未跟踪文件和目录:

git clean -fd

其他回答

转到结帐。

我总是使用这个命令将本地更改替换为存储库更改。 Git签出空间。

如果你想要更新当前未签出的分支,你可以这样做:

git fetch -f origin rbranch:lbranch
git reset --hard
git clean -fd

这为我工作-清洁显示它删除的所有文件。如果它告诉你你会失去零钱,你需要藏起来。

确保您已经签出了要替换的分支(来自Zoltán的评论)。 假设master是你要替换的本地分支,而“origin/master”是你想重置到的远程分支: Git重置-硬源/主

这会将您的本地HEAD分支更新为与origin/master相同的版本,并且——hard也会将此更改同步到索引和工作区中。

用远程分支替换所有内容;但是,只能从本地分支打开的同一个提交:

git reset --hard origin/some-branch

或者,从远程分支获取最新的并替换所有内容:

git fetch origin some-branch
git reset --hard FETCH_HEAD

顺便说一句,如果需要,你可以清除你还没有提交的未跟踪文件和目录:

git clean -fd