我使用以下命令将本地主机重置为提交:
git reset --hard e3f1e37
当我输入$ git status
命令时,终端显示:
# On branch master
# Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded.
# (use "git pull" to update your local branch)
#
nothing to commit, working directory clean
由于我还想重置源/报头,所以我签出到源/主:
$ git checkout origin/master
Note: checking out 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at 2aef1de... master problem fixed for master. its okay now.
并通过以下命令重置header:
$ git reset --hard e3f1e37
HEAD is now at e3f1e37 development version code incremented for new build.
然后,我尝试将提交添加到未成功的源/标头。
$ git commit -m "Reverting to the state of the project at e3f1e37"
# HEAD detached from origin/master
nothing to commit, working directory clean
最后,我结账到我当地的主人那里。
$ git checkout master
Switched to branch 'master'
Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
由于我重置了源/主的头部,我希望local和Since应该在同一个方向上,但是正如你所看到的,git说我的local/master比源/master落后7次提交。
如何解决此问题?我正在寻找的东西是本地/master的头和源/master指向相同的提交。下图显示了我所做的事情。谢谢。
发布于 2013-07-16 10:30:38
origin/xxx
分支始终是指向远程的指针。您不能签出它们,因为它们不是指向您的本地存储库的指针(您只能签出提交。这就是为什么在命令行界面分支标记中看不到名称,只能看到提交散列的原因。
要更新remote,您需要做的是强制将本地更改推送到master:
git checkout master
git reset --hard e3f1e37
git push --force origin master
# Then to prove it (it won't print any diff)
git diff master..origin/master
发布于 2014-08-20 02:44:44
解决方案发现here帮助我们将master更新为已经推送的前一个提交:
git checkout master
git reset --hard e3f1e37
git push --force origin e3f1e37:master
与接受的答案的关键区别在于push命令中master之前的提交散列"e3f1e37:“。
发布于 2019-08-26 17:18:06
假设您的分支在这里和远程都被称为master
,并且您的远程被称为origin
,您可以这样做:
git reset --hard <commit-hash>
git push -f origin master
但是,如果其他任何人正在使用您的远程存储库并拉出了您的更改,则应避免执行此操作。在这种情况下,最好恢复您不想要的提交,然后正常推送。
https://stackoverflow.com/questions/17667023
复制相似问题