1. 撤销commit
[原文]https://www.cnblogs.com/lfxiao/p/9378763.html
写完代码后,我们一般这样
git add . //添加所有文件
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,怎么办?
git reset --soft HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回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注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
2.提交代码
- git pull
拉取代码 - git status
查看代码修改情况,有以下几种状态:
Untracked: 未跟踪,一般为新增文件,此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
deleted: 文件已删除,本地删除,服务器上还没有删除.
renamed:
- git add 命令
添加需要提交的文件文件 - git commit -m "comment"
提交代码 - git push
推到远端
常见问题
- 误将代码提交到缓存中(利用 git add 命令误将代码提交的缓存中)
解决办法:利用 git reset 命令将撤回缓存中的代码。 - 误将代码提交到本地仓库(利用 git commit 命令误将代码提交到本地仓库)
解决办法:
- git log 查看需要版本号,找到需要回退到的版本号
- git reset --hard + 版本号
- git push 推到远程仓库会报错,需要使用 git push -f 强制推送
彻底回退到某个版本,本地的代码也会改变上一个版本内容。
分支管理
新建分支 git branch branch-name
将分支推到远程仓库 git push --set-upstream origin branch-name
删除本地分支 git branch -d branch-name
删除远程分支 git push origin --delete branch-name
回滚上一个版本
git reset --hard HEAD^
回退到前 n 次的提交
git reset --hard HEAD~3
回退/前进 到指定的 commit id
git reset --hard <commit_id>
强推送到远程仓库
git push origin HEAD --force
网友评论