我有两个分支:
当地分公司(和我一起工作的那家) 远程分支(公共的,只有经过良好测试的提交才会去那里)
最近我把我当地的分公司搞得一团糟。
如何将本地分支完全替换为远程分支,以便从远程分支现在所在的位置继续工作?
我已经搜索了SO,在本地签出到远程分支没有任何影响。
我有两个分支:
当地分公司(和我一起工作的那家) 远程分支(公共的,只有经过良好测试的提交才会去那里)
最近我把我当地的分公司搞得一团糟。
如何将本地分支完全替换为远程分支,以便从远程分支现在所在的位置继续工作?
我已经搜索了SO,在本地签出到远程分支没有任何影响。
当前回答
选择的答案是绝对正确的,但它没有离开我与最新的提交/推送…
所以对我来说:
git reset --hard dev/jobmanager-tools
git pull ( did not work as git was not sure what branch i wanted)
因为我知道我想暂时将我的上游分支设置几个星期到一个特定的分支(与我之前切换到/签出并进行了硬重置的分支相同)
所以是AFTER reset
git branch --set-upstream-to=origin/dev/jobmanager-tools
git pull
git status ( says--> on branch dev/jobmanager-tools
其他回答
转到结帐。
我总是使用这个命令将本地更改替换为存储库更改。 Git签出空间。
git reset --hard
git clean -fd
这为我工作-清洁显示它删除的所有文件。如果它告诉你你会失去零钱,你需要藏起来。
丑陋但更简单的方法:删除本地文件夹,并再次克隆远程存储库。
你可以像@Hugo of @Laurent说的那样做,或者你可以使用git rebase删除你想要摆脱的提交,如果你知道是哪些。对于这种操作,我倾向于使用git rebase -i head~N(其中N是一个数字,允许您操作最后N次提交)。
选择的答案是绝对正确的,但它没有离开我与最新的提交/推送…
所以对我来说:
git reset --hard dev/jobmanager-tools
git pull ( did not work as git was not sure what branch i wanted)
因为我知道我想暂时将我的上游分支设置几个星期到一个特定的分支(与我之前切换到/签出并进行了硬重置的分支相同)
所以是AFTER reset
git branch --set-upstream-to=origin/dev/jobmanager-tools
git pull
git status ( says--> on branch dev/jobmanager-tools