我有一个名为masterdev的分支。
我对该分支做了一些提交,因此可能是服务器上的masterdev提前10次提交。 但实际上这些提交已不再好了,所以我不想推动它们。
我可以恢复或改变可能与我在这些提交中所做的相反。但我觉得这看起来并不清楚。
所以我想要做的是获得与git pull origin masterdev相同的行为,如果masterdev落后的话。
我想要消灭我的本地masterdev以获得与服务器相同的内容。
答案 0 :(得分:3)
我认为你想要的是 - 这将重置你的本地版本的masterdev,删除你的提交。然后你拉,以确保你是最新的。
git reset --hard origin/masterdev
git pull origin masterdev
答案 1 :(得分:3)
如果您在索引和工作树中没有任何值得保存的东西,那么简单git reset --hard
就足够了:
$ git status
On branch masterdev
Your branch is ahead of 'origin/masterdev' by 10 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
$ git fetch origin
... [snip]
$ git reset --hard origin/masterdev
如果你确实需要保存一些工作,你可能应该提交它并做一些比简单git reset --hard
更复杂的事情。
(中间git fetch
步骤可以在git status
之前或之后运行,但前面和/或后面的提交数量可能会因此而改变。我建议避免使用git pull
一般而言,在这种情况下你不需要它。)
答案 2 :(得分:1)
git reset --hard origin/masterdev
应该做到这一点。然后你可以简单地做git pull origin masterdev
答案 3 :(得分:0)
简单,只是git checkout --track origin/master
。将在本地为您创建分支,并与远程版本完全相同