远程和本地git存储库

时间:2017-07-20 21:44:16

标签: git github pull

我有一个名为masterdev的分支。

我对该分支做了一些提交,因此可能是服务器上的masterdev提前10次提交。 但实际上这些提交已不再好了,所以我不想推动它们。

我可以恢复或改变可能与我在这些提交中所做的相反。但我觉得这看起来并不清楚。

所以我想要做的是获得与git pull origin masterdev相同的行为,如果masterdev落后的话。

我想要消灭我的本地masterdev以获得与服务器相同的内容。

4 个答案:

答案 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。将在本地为您创建分支,并与远程版本完全相同