git 常用命令总结

293 阅读2分钟

1. 长期保存用户名和密码:

git config --global credential.helper store

2. 短暂的保存用户名和密码(默认15分钟)

git config --global credential.helper cache

3. 使用git commit --amend命令之后,如何做撤销处理

1) 撤销 amend

首先使用 git reflog 命令查看操作记录:

$ git reflog

c1c1b21 HEAD@{0}: commit (amend): add blank line to index.html

9ff821d HEAD@{1}: commit: add blank line to index.html

b078331 HEAD@{2}: commit: no more commit!

b86e902 HEAD@{3}: commit: so many commit

看到 amend 操作之前的最后一个操作就是 HEAD@{1}. 现在可以用 git reset 将当前分支的 HEAD 指向 HEAD@{1}, 即可达到撤销 amend 的目的: git reset --soft HEAD@{1}

4. git rebase相应的分支

如果test是基于master拉取的分支,如果在当前master上面有修改,如果想保持当前test的数据和master保持一致,则需要在当前的test分支下,执行git rebase master

5. git 同步分支

new_test是基于master拉取的一个分支,之后,new_test分支已经做了很多修改,但是这些修改并没有同步到指定的master分支上面去,此时需要将new_test分支中的内容废除掉,而且,又需要保留new_test分支,然后,再将master最新分支的代码同步到new_test上面去,则需要执行以下几个步骤: 1) checkout到new_test分支下,然后执行 rm -rf * 2) git commit -a -m "delete all" 3) git push origin new_test(push到远程) 4) checkout到master分支,并且执行git branch -D new_test 5) 然后执行git checkout -b new_test 6) git push origin new_test -f (强制推到远程)

此后,master上如果有修改同步到new_test上去,则需要执行git rebase master 如果master分支需要同步new_test分支上面的内容,则需要执行 git merge new_test

6. 经典的回退代码


git revert commit_id   (取消某一次的提交)

7. cherry-pick命令


git cherry-pick commit_id (这个commit_id能够跨分支)

注意:如果是他人提交的代码,在使用cherry-pick的时候需要带参数-n

  1. git cherry-pick -n commit_id

  2. git commit -a -m "merge the commit"

  3. git push origin remote

8 基于某次提交commit去拉分支


git checkout -b branchname