git常用命令总结
2016年1月29日
本文总结了平时开发中常常用到的git命令。
多出来的commit
Git从将远程分支与本地分支合并可以有两种方式,一种是 git pull
, 另一种是 git fetch + git rebase
.
区分在于 git pull
是把远程分支代码拉下来,与本地分支进行merge操作,相当于git fetch + git merge
;
所以使用git pull
命令之后,会自动多出来一次merge的commit,从git log
上面看到的情况就是多了一次commit, 而且git树也不那么整洁了。
推荐的做法是使用rebase而不是pull, 可以git fetch ; git rebase
,也可以git pull —rebase
.
tag 管理
1 | # 查看tag |
git stash 暂存
1 | # 缓存到暂存区 |
注意: stash
尽量少用,最好只缓存一次,不然顺序会搞不好弄乱的。
添加一个忽略文件到 gitignore
1 | $ git rm --cached your_ignored_file |
一个好看的git log
默认 git log
样式不太好看,用 alias 换成一个比较好看的:
1 | $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blu |
git
最强大的功能之一就是分支管理,下面总结下常用的branch
命令。
查看分支
1 | $ git branch -a # 列出所有分支,包括本地的和remote的 |
创建分支 git checkout -b [branchname]
我们经常需要基于master
拉一个分支进行开发,开发完成之后再将代码合并会master
分支.
1 | $ git branch testing # 创建一个叫 `testing` 的分支 |
删除分支 git branch -d [branchname]
1 | $ git branch -d testing2 |
切换分支 git checkout [branchname]
1 | $ git checkout testing # 切换到testing分支上 |
合并分支(解决冲突)
开发分支是用来开发新功能的,开发完毕后还是要将代码饭和到主分支 master
中。
1 | $ git checkout master # 首先切换到 master 分支 |
git删除push到远程服务器的commit
如果不小心把不该提交的代码或者敏感的数据(如密码)提交到远程git服务器上,可以使用git reset
回滚到上一个commit,并且commit history
不留下任何痕迹。
具体做法:
1 | # 1.通过找到想要退回到的commit_id |
如果不加--force
参数提交不上去,服务器rejected.
最后你会发现,代码服务器上也不会留下痕迹,完美。