Git 一些可能用到又不常用的语句

(1)git commit 后突然发现自己有的修改不想要,从此需要回退commit

方法1. git reset --soft HEAD^ 这样可以让我们回到 git add . 的局面

方法2.git reset --mixed HEAD^和git reset HEAD^ 不仅撤销了git commit,同时还撤销了 git add .

方法3.git reset --hard HEAD^ 这样你的代码修改就全没了

(2) git add 后突然遇到了自己不想要提交的文件

方法1. git reset HEAD 或者 git reset HEAD xxx文件

(3) git push 撤销

  1. git log

  2. git reset --soft commit id

  3. git push origin master --force

    假如你们公司使用了code review工具,则可以使用git revert语句

  4. git revert HEAD 撤销前一次 commit

  5. git recert HEAD^ 撤销前两次

  6. git revert commit-id 撤销指定commit

(4)打补丁

比如打一个 git format-patch -1 commit-id

多个commit git format-patch commit-id commit-id

生成最近提交的commit patch git format-patch HEAD^

(5)不同仓库做cherry-pick实战

仓库1 ssh://text@git.xxx.cn/PROJECT1/source/base/android/external

仓库2 ssh://text@git.xx.cn/PROJECT2/source/base/android/external

假如我们本地分支拉去的是仓库2的代码,此时我们需要添加仓库1远程分支

git remote add PROJECT1 ssh://text@git.xxx.cn/PROJECT1/source/base/android/external

此时便可以cherry-pick 仓库1的commit-id

(6)git add -u 添加跟踪的文件到缓存

(7)git 取消文件add

git reset HEAD + 文件名

(8) git查看所有远程仓库

git remote -v