命令及技巧
git log查看提交记录
1 | git log git log <file> # 查看该文件每次提交记录 |
git reflog查看被撤消的提交
1 | #恢复 |
git stash暂存
git stash
用好很强大
1 | git stash #暂存修改,注意要先git add |
提交
git commit --amend
添加到最后一次提交
推送远程
正常情况下push
1 | git push origin master |
第一次可以推送并关联默认分支1
git push -u origin master
这样以后每次就可以只用通过git push
来推送了
如果需要进行code review
, 需要改成下面这样
1 | git push origin HEAD:refs/for/master |
refs/for/master
需要经过code review
之后才可以提交;refs/heads/master
不需要code review
远程更新
在pull代码的时候,最好加上–rebase1
git pull --rebase
因为git pull –rebase因为se这个命令做了以下内容:
- 把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的,这样就不会产生冲突啦)
- 然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突
- 从暂存区把你之前提交的内容取出来,跟拉下来的代码合并
git blame查看某一行代码的修改历史
通过以下方法查看文件中每行的最近个性1
git blame file_name
结果如:
1 | 0584cb5 (tory 2018-03-01 23:14:43 +0800 2) apply from: "config.gradle" |
然后通过git show commitID
查看历史
或者:
在Android Studio中右键文件行号部分,选择
Annotate
git cherry-pick
git cherry-pick
用于把另一个本地分支的commit
修改应用到当前分支。
移除某文件夹的版本控制
以bin
目录为例,如果bin
已经被加入到
先添加到.gitignore
里面1
bin/
预览要删除的文件1
git rm -r -n --cached "bin/"
执行命令:1
git rm -r --cached "bin/"
提交并推送到远程
1 | git commit -m "remove bin folder all file out of control" //提交 |
分支管理
1 | #查看分支 |
基本配置
配置
设置Git的user name
和email
:
1 | $ git config --global user.name "xxx" |
初始化项目:
1 | git init |
SSH Keys
生成ssh key:
1 | ssh-keygen |
在~/.ssh/id_rsa.pub
中把公钥复制到github
的ssh key
的配置项中
添加后,在终端(Terminal)中输入以下内容,测试与github的连接是否正常1
ssh -T git@github.com
oschina的则是输入以下内容:1
ssh -T git@git.oschina.net
关联远程仓库
使用下面的bash命令,将Http方式的项目改成为SSH方式
关联添加远程地址1
git remote add origin "你项目的的ssh地址"
重新设置远程地址1
2cd "你项目的目录文件夹"
git remote set-url origin "你项目的的ssh地址"
设置commit模板
在主目录下新建commit.template
文件,填入以下内容
1 | BUG ID: ALHWWY-XXXX or none |
然后设置提交模板
1 | git config --global commit.template ~/commit.template |
Shadowscoks代理
1 | git config --global http.proxy 'socks5://127.0.0.1:1080' |
查看配置信息
system(系统级别)->global(用户级别,也就是所有仓库)->local(当前仓库)1
2
3
4
5
6
7
8#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
#查看当前仓库配置信息(需要在仓库中使用)
git config --local --list
.gitignore
GitHub官方的所有.gitignore文件
https://github.com/github/gitignore