git如何撤销已经push到远端的代码
1、首先用 git log 命令查看历史记录(在实际使用当中,由于自己新建的分支上只有自己提交的问题,也可以采用暴力直接删除远程分支的方式解决问题)
2、假设要回退到上一版本,版本号应是Fri Jul 12 11:07:01 2019时间的19462f6f46cf4cbc211d366359afac0c17a7c190
-
git reset --soft 19462f6f46cf4cbc211d366359afac0c17a7c190
-
// 注意 --hard 参数会抛弃当前工作区的修改
-
// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
3、提交回退,git push origin step5/test --force
这样就回退成功了,但是有人会发现,另一个同样的工程pull拉取最新代码的时候,不能拉取最新代码。这是因为有问题的工程的版本和未回退前的版本是一样的,现在回退了也就是版本降低了,pull是不可能从高版本降到低版本的。如果是这样,可以用 git branch -D step5/test 来删除本地分支,或是删除文件夹,重新下载。
当然要解决这个问题,还可以用 git revert的作用通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本,这样可以保留要回退的版本,如果有其它人 pull 工程就不会取不到最新代码了。
删除远程和本地分支
删除远程分支
1:git branch -a(查看所有的分支)
2:有remotes/origin开头的就是远程分支。
3:切换其他分支
假设要删除hehe的远程分支,我们需要先把分支切换到master,因为你现在所在的分支就是hehe,在这个分支下,是不能删除它的。
4:删除远程分支git push origin --delete hehe
删除本地分支:
git branch -D step5/test
5:删除后可以使用git gc --prune=now命令清空本地缓存