回滚 n 个 commit (增加了revert commit)
git revert -n commit_id
回滚到指定的commit_id(不增加commit,回滚的commit_id被删除)
git reset --hard commit_id
回到commit_id处,在这里可以修改在这个commit_id后的commit
git rebase commit_id
修改已经commit但是未push的提交
git commit --amend
修改已经push的提交
1.git rebase -i 该提交的前一个commit的编号commitid
2.在git bash中运行上面的命令后,会弹出编辑框,在编辑框中会分行依次显示以pick开头的commitid之后的所有commit message。
3.将需要修改的commit message之前的"pick"改为"reword",点击保存按钮,并关闭编辑框,这时会执行rebase操作。
Rebasing (1/3)
4.接着会再次弹出编辑框,这次编辑框中只有之前改为"reword"的那个commit message,此时修改commit message的内容,点击保存按钮并关闭编辑框,会继续执行rebase操作。
5.git push --force
放弃所有的本地修改(不包括增加的文件)
git checkout .
查看commit_id修改文件的统计信息(增删行数)
git log --stat commot_id
查看commit_id修改文件的细节
git log -p commit_id
查看fileName相关的commit记录
git log filename
显示filename的每次提交的diff
git log -p filename
查看本地分支
git branch
查看所有分支
git branch -a
如果让HEAD文件指向一个commit id,那就变成了detached HEAD。git checkout 可以达到这个效果,用下面的命令:
git checkout commit_id
从detached HEAD状态中返回:
git checkout master ##到这里可能会落后master多个commit,git pull之
git pull ##更新后,再fetch吧
git fetch origin master ##source的master已经最新,此时可以正常操作了
git 删除本地分支
//查看本地分支
git branch
//删除目标分支
git branch -D master
//重新拉取master分支
git checkout master