部分命令参考了这篇文章
命令
配置命令别名
:
git config --system alias.{short name} {origin name}
列出所有别名配置
:
git config --get-regexp alias
解决Git命令输出中文文件名的显示问题
:git config --system core.quotepath false
Git命令输出中开启颜色显示
:git config --system color.ui true
打标签
:
- 轻量级标签
git tag {tagname}
- 含附注标签
git tag -a {tagname} -m {annotation}
- 推送分支
git push origin {tagname}
- 推送所有分支
git push origin --tags
重命名分支
:
- 命名任何一个分支
git branch -m {oldname} {newname}
- 命名当前分支
git branch -m {newname}
设置默认编辑器
git config --system core.editor {editor}
删除远程分支
:
git push origin --delete {branch name}
git push origin :{branch name}
删除文件
:
- 从仓库中以及从文件系统中删除文件:
git rm {file name}
- 仅从仓库中删除文件:
git rm --cached {file name}
删除远程不存在的本地分支引用
:
合并最近n次提交
:
git rebase --interactive HEAD~n
http://stackoverflow.com/questions/2563632/how-can-i-merge-two-commits-into-one
列出没有合并的文件
git diff --name-status --diff-filter=U
rebase
应用场景1–将当前分支重新base到最新master
这样就不用merge
了,保持当前分支的纯净。根据需要rebase
到合适的分支。
1 | git rebase {branch name} |
应用场景2–合并提交
根据习惯/要求不同,可以删除一些当前分支临时性的提交,以保持提交记录的漂亮。
1 | git rebase --interactive HEAD~n # 以交互的方式rebase最近n次提交 |
日志
git shortlog
: 总结git log
的输出
1 | git shortlog -sne |
git log --author="<pattern>
列出该提交者committer
的记录
配置相关
- 列出所有别名: git config –get-regexp alias
问题
git status
乱码git config --global core.quotepath false
工具
存储凭证
存储选项
- 默认不存储
cache
存储在内存, 15 分钟后从内从中清除,该选项后有一个--timeout <seconds>
参数store
以明文的方式存储在磁盘,永远不会过期, 该选项后有个--file <path>
参数
还有其它两种分别针对于
Windows
和OSX
平台的配置,但是我从来没用过,所以我就不在这里记了。
Example:
1 | git config --global credential.helper cache --timeout 9000 |
refusing to merge unrelated histories
错误
From: http://blog.csdn.net/lindexi_gd/article/details/52554159
在 pull
远程数据的时候出现 refusing to merge unrelated histories
错误,这是因为远程仓库和本地仓库不是同一个仓库的原因,如果确信要合并,可以在 pull
的时候使用 --allow-unrelated-histories
参数:
1 | git pull origin master --allow-unrelated-histories |
RPC failed; result=22, HTTP code = 411
错误
From: https://stackoverflow.com/questions/12651749/git-push-fails-rpc-failed-result-22-http-code-411
这是因为 Git
默认的配置将某些 HTTP
操做限制为 1M 字节,修改默认限制:
1 | git config http.postBuffer *bytes* |
有用的命令
- 搜索
IP
:git grep -E "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"