1.删除本地不存在远程存在的远程分支
git remote prune origin
或者
git fetch -p 命令 命令行解释--prune -p -- remove any remote tracking branches that no longer exist remotely 英文意思:删除不存在的远程跟踪分支
2.git本地即使有修改如何强制更新:
本地有修改和提交,如何强制用远程的库更新本地。我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERGE_HEAD exists)。
我需要放弃本地的修改,用远程的库的内容就可以,应该如何做?傻傻地办法就是用心的目录重新clone一个,正确的做法是什么?
正确的做法应该是:
git fetch --all
git reset --hard origin/master // 远程分支名称
git fetch
只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本
3.本地分支强制覆盖远程分支
git push origin 分支名 --force
4.取消commit提交
git reset --soft HEAD^
HEAD^是取消上一次commit记录
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。