Git使用记录
一、分支合并
1. rebase
git rebase <branch-name>
[解决冲突]
git add .
git rebase --continue
[解决冲突]
git add .
git rebase --continue
...
2. cherry-pick
git cherry-pick <commit-id>
[解决冲突]
git add .
git commit -c <commit-id>
二、 分支相关
1. 修改远程服务器地址:
git remote set-url origin <new_remote_repository_address>
查看远程仓库地址: git remote -v
2. 修改本地分支名:
git branch -m <old-local-branch-name> <new-local-branch-name>
3. 修改远程分支名:
// 1. 重命名远程分支对应的本地分支
git branch -m <old-local-branch-name> <new-local-branch-name>
// 2. 删除远程分支 (前提绑定远程分支, git push - u origin name)
git push origin : <old-local-branch-name>
c. 上传新命名的本地分支
git push origin <new-local-branch-name>: <new-local-branch-name>
4. 查询所有的远程分支
git branch -r
三、提交相关
1. 修改上一次commit的提交信息及内容:
git add . //无内容追加时可不用add
git commit --amend -m "New commit message" //追加提交信息
// --amend 向上一次提交追加内容
2. 撤销提交 git revert
git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD //撤销前一次 commit
git revert HEAD^ //撤销前前一次 commit
git revert <commit-hash>
四、暂存相关
1. 清除暂存文件
方法1:git checkout .
方法2:当方法1不能去除时可使用此方法
git add .
git reset --hard HEAD
五、日志相关
- 查询筛选
--按文件名筛选--
git log -p <file-path>
git log -p app/src/main/AndroidManifest.xml //例
--按时间筛选--
git log --after=<date> --before=<date>
git log --after=2017-5-8 --before=2017-5-10 //例
--按作者筛选
git log --author=<name>
git log --author=zhaolew //例
--按提交信息筛选
git log --grep=<key_string>
git log --grep=删除 //例
--按提交更改内容筛选
git log -S "<key_string>"
git log -S "MainActivity" //例
--根据提交范围筛选
git log <commit-id>..<commit-id>
git log <branch>..<branch>
git log dev..dev_en // 例 (注意 '..' 没有空格)
- 查看日志的样式
--查看分支日志层次(有点像AS中的Version Control 的日志样式)
git log --graph --oneline --decorate
--显示每个文件变化的行数
git log --oneline --stat
--查看提交日志的详细信息
git log -p
--按格式输出日志
git log --pretty=format:"<format-string>"
git log --pretty=format:"%cn committed %h on %cd" //例
标识符示例
%ad // 日期
%an // 作者名
%cn //提交者姓名
%h // hash值
%s //commit的描述
%d //对应的 branch 分支名
更多标识符:https://www.kernel.org/pub/software/scm/git/docs/git-log.html#_pretty_formats
(以下图片来自网络,非作者所作)