常用到的git操作
1.新建分支并将服务器分支和新分支合并并且跳到新的分支下
git checkout origin/dev -b dev
2.rebase后冲突,回到rebase之前的状态
git rebase --abort
3.如何用git reflog和git cherry-pick找回已删除的commit记录
commit2: add test2.c
commit1: add test1.c
模拟丢失commit记录的情况,执行git reset --hard HEAD~1,删除了commit3,同时test3.c文件已经在working tree里看不到了,如果要恢复commit3,就要使用git reflog和git cherry-pick.
$ git reflog
502dd0f HEAD@{0}: HEAD~1: updating HEAD
147b3b5 HEAD@{1}: commit: test3
502dd0f HEAD@{2}: commit: test2
0692c03 HEAD@{3}: commit (initial): test1
HEAD@{0}: HEAD~1: updating HEAD
红色加粗的即是被删除了的 commit3,运行git log则没有这一行记录,可以使用git reset --hard 502dd0f
将红色记录删除,恢复cmmit3,需要用git cherry-pick.
$ git cherry-pick 147b3b5
[master 02c1e69] test3
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test3.c
4.git stash 可用来暂存当前正在进行的工作
比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
基础命令:
$git stash
$do some work
$git stash pop
5.修改提交了的文件的用户名和邮箱
git commit --amend --author='Your Name (尖括号)you@example.com(尖括号)'
6.删除所有stash,git stash clear
7.批量删除不需要的branch, git branch |grep '分支名' |xargs git branch -d