
$ git add .|-A|--all
# 在 git 1.x版本中 git add . 对于追踪删除的文件不起作用;git 2.x 版本中已无区别
# 将工作区被修改、删除的文件添加到暂时区(不包含未被Git跟踪的文件)
$ git add -u
$ git mv <old_filename> <new_filename>
# 将 readme 文件重命名为 readme.md
$ git mv readme readme.md
$ git commit -m 'move readme to readme.md'
# git mv 通常对于大小写重命名不敏感
# git mv readme Readme 是可以正常执行的
# 若是不行则执行 git config core.ignorecase true|false
# 查看本地有多少分支
$ git branch -v
$ git log --all # 查看所有分支的历史
$ git log --all --graph # 图形化的log地址
$ git log --oneline # 查看单行的简洁历史
$ git log --oneline -n4 # 查看最近的四条简洁历史
$ git log --all --grep="homepage" # 所有包含 homepage 的提交(通过消息检索提交)
$ git log --author="zen" # 检索所有 zen 作者的提交
# 需要 git-doc
$ git help --web log # 在浏览器上查看 log 的帮助文档
# 打一个新标签 git tag <tagname>
$ git tag tag_v1.0.0
# 默认标签是打在 HEAD (最新提交的 commit 上的)。后面加 commit id 就可以打在某次提交上。
$ git tag tag_v1.0.0 f52c633
# 把标签推送到远程 git push origin <tagname>
$ git push origin tag_v1.0.0
# 查看本地所有标签。
$ git tag
# 查看远端所有标签。
$ git ls-remote --tags
# 删除本地标签 git tag -d <tagname>
$ git tag -d tag_v1.0.0
# 删除远端标签
# Git 1.7.0 之后:git push origin -d tag <tagname>
$ git push origin -d tag tag_v1.0.0
# 或者 git push origin :refs/tags/<tagname>
$ git push origin :refs/tags/tag_v1.0.0
# 一次性推送全部尚未推送到远程的本地标签
$ git push origin --tags
# 显示本地所有分支。 -r 显示远程分支;-a 显示本地和远程分支。
$ git branch
# 创建分支
$ git branch <branchname>
# 修改分支的名称
$ git branch -m <oldbranch> <newbranch>
# 删除本地分支
$ git branch -d <branchname>
# 若有未合并到 HEAD 的提交,则不能删除分支。如果要强制删除未提交的分支,请使用 -D 选项。
$ git branch -D <branchname>
# 删除远端分支 Git 1.7.0 之后
$ git push origin -d <branchname>
# 切换分支
$ git checkout <branchname>
# 创建并切换到该分支
$ git checkout -b <branchname>
不推荐使用 git stash save
# 将本地修改保存到新的存储项,然后回滚到 HEAD
$ git stash
# 需要标注信息。git stash 等效于 git stash push
$ git stash push -m <message>
# 列出所有存储项
$ git stash list
# 显示 stash 和当前分支的差异
$ git stash show -p stash@{1}
# 取出最近存储的存储项(取出之后会删除)。后面加参数 stash@{1} 表示取出 stash@{1} 的存储。
$ git stash pop
# 取出不删除
$ git stash apply
# 删除所有存储项
$ git stash clear