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
-
git cherry-pick -n commit_id
-
git commit -a -m "merge the commit"
-
git push origin remote
8 基于某次提交commit去拉分支
git checkout -b branchname