Git 使用问题记录

在使用 git 的过程中由于误操作,导致从本地 master 分支 merge 代码到当前分支失败,虽然当前分支和 master 分支代码不同步,但是仍然提示 Already up-to-date

参考 StackOverflow 上面的解答:

https://stackoverflow.com/questions/634546/git-merge-reports-already-up-to-date-though-there-is-a-difference

大体意思是说当前分支已经同本地 master 分支代码合并过了,并且本地 master 分支代码已经是最新的了。

这时可以使用 git reset --hard 命令将本地分支的代码回滚到以前某一个正确的版本,再配合 git push --force 命令将本地分支的修改强制同步到服务器上,不然服务器上的分支又会和回滚后的分支冲突:

1
2
git reset --hard <commit_id>
git push origin <branch> --force

<commit_id> :表示将要回滚到的当前分支的历史版本号。
<branch> :表示当前的本地分支名称。

git reset 时,–soft、–mixed、–hard 的区别:

git reset –soft:回退版本库中的信息,不会回退暂存区和工作区中的信息,如果想要重新提交,直接 commit 即可。

git reset –mixed:回退版本库和暂存区中的信息,不会回退工作区中的信息,如果想要重新提交,需要先 add 进暂存区,再 commit。

git reset –hard:同时回退版本库、暂存区、工作区中的信息。

分享到:
Disqus 加载中...

如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理