git log
git log 用于查看每个提交的日志(Show commit logs)。从 Viewing the Commit History 开启了解 git log 的新视角。
好的注释可以让人一下子就了解本次修改的目的,比如修改了哪个BUG,解决了什么问题,实现了什么功能。
至于具体修改了哪些文件,通过 git log --name-status
即可查知,没有必要在 commit 的注释中体现。
-
git log --name-status --oneline
查看提交的注释和文件列表;内置图形工具 git gui 和 gitk 当然更方便。 -
git log -n 5
只查看前5条。 -
git log --patch [commit]
查看 diff。类似git diff [commit]
-
git log --graph
查看所有分支情况,简单、清晰图形标识分支; -
git log --pretty=format:"%an %ad %s"
自定义输出格式:author name, author date, subject。 -
git log --all --oneline **/<filename>
git log --all --name-status **/*<partoffilename>*
查找哪些提交中包含了指定文件;
--name-status 列出具体的文件目录,**/ 表示任意路径; -
git log --diff-filter=D --summary | grep delete
Get a list of the deleted files and copy the full path of the deleted file.
列出已删除文件列表; -
git log --stat
列出简略的统计数据:abbreviated stats for each commit.
git tag
Tag objects (created with -a, -s, or -u) are called "annotated" tags; they contain a creation date, the tagger name and e-mail, a tagging message, and an optional GnuPG signature. Whereas a "lightweight" tag is simply a name for an object (usually a commit object).
Annotated tags are meant for release while lightweight tags are meant for private or temporary object labels. For this reason, some git commands for naming objects (like git describe) will ignore lightweight tags by default.
-
git tag -d
删除标签 -
git tag -l
查看本地标签列表; -
git tag <tag>
对本地当前分支的当前 commit 打标签,如:git tag v2.0.609。 -
git push <remote> <tag>
git push <remote> tag <tag>
git push <remote> <branch> <tag>
git push <remote> <branch> refs/tags/<tag>
本地建好标签后,将标签推送到远程,如:git push origin tag v2.0.609。
tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>. 冒号前面的是来源 src,后面的是目标 dst。
Pushing an empty <src> allows you to delete the <dst> ref from the remote repository. -
git push origin :old_tag
删除远程标签 -
git push <remote> <branch> :refs/tags/<tag>
删除远程分支的标签; -
git push origin :old_branch
删除远程分支 -
git fetch --prune
和远程同步,清理本地存储的远程分支信息
-p,--prune,After fetching, remove any remote-tracking references that no longer exist on the remote.
如果有人清理了远程 repo 标签,你 git pull 后并不会同步清理本地记录的那些标签名;请使用该命令清理那些在远程并不存在的refs;
参考:Git 分支与整合策略。 - git fetch;
-
git fetch --prune --prune-tags
(自版本 2.17 支持)
Before fetching, remove any local tags that no longer exist on the remote if --prune is enabled. This option should be used more carefully.
git fetch --prune --prune-tags
网友评论