Git命令进阶篇

  1. 追溯哪句代码是谁改的:
  • $ git log -p [filename]
    显示文件所有详细的修改记录,信息非常全,慢慢找
  • $ git log -L 1,2:[filename]
    显示文件1-2行的更改记录,通过行数缩小范围
  • $ git blame [filename]
    显示的是每一行‘最后’是谁改的,如果只是追查最后的结果,比上一种好找
  1. commit丢失怎么找?
  • $ git reflog
    可以查看所有commit的ID:reset后的、rebase中的、pull的、merge的。它的尽头就是clone或init.
  1. commit信息写错、代码写错、把后一次提交合并到前一次
  • 若没push到远程:
    • $ git add [files] (添加修改文件到暂存区)
    • $ git commit --amend (进入文本编辑模式修改commit信息)
  • 已经push到远程:
    • $ git revert HEAD (撤销上一次commit的内容(并且会提交一次))
    • 非要改,必须确认本地代码没问题的条件下,git push -f 重写远程的历史记录 非常危险,慎重使用
  1. 新功能开发到一半,想回到旧代码测试或者改bug
  • 创建一个分支,把修改commit到新分支上存起来(一般都会的操作,不演示命令了)
  • $ git stash 默认暂存所有的更改,代码回到上一次commit的状态;
  • $ git stash pop 取回暂存的更改。
  • $ git stash list 查看所有 stash
  • $ git stash drop 删除最新 stash
  • $ git stash clear 删除所有stash
  • 注:若pop前有文件修改,也会保留修改;有冲突的话会有提示

参考:http://blog.jobbole.com/96088/

你可能感兴趣的:(Git命令进阶篇)