Git使用
常用功能
版本回退
git reflog
git reset --hard commitId
git push -f origin master
更新子模块
git submodule update --init --recursive
当.gitmodules文件中记录的子模块的URL发生了改变,需要先同步子模块的URL:
git submodule sync --recursive
子模块版本回退
进入子模块目录,将子模块回滚到指定commit版本
git reset --hard [commit-number]
查看某次提交的文件
选项 | 说明 |
---|---|
-p | 按补丁格式显示每个更新之间的差异 |
–word-diff | 按 word diff 格式显示差异 |
–stat | 显示每次更新的文件修改统计信息 |
–shortstat | 只显示 --stat 中最后的行数修改添加移除统计 |
–name-only | 仅在提交信息后显示已修改的文件清单。 |
–name-status | 显示新增、修改、删除的文件清单。 |
–abbrev-commit | 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
–relative-date | 使用较短的相对时间显示(比如,“2 weeks ago”)。 |
–graph | 显示 ASCII 图形表示的分支合并历史。 |
–pretty | 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 |
–oneline | –pretty=oneline --abbrev-commit 的简化用法。 |
commit 提交规范
commit message格式 <type>(<scope>): <subject>
type(必须) : 用于说明git commit的类别,只允许使用下面的标识。
type | 说明 |
---|---|
feat | 新功能(feature)。 |
fix/to | 修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。 |
fix | 产生diff并自动修复此问题。适合于一次提交直接修复问题 |
to | 只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix |
docs | 文档(documentation)。 |
style | 格式(不影响代码运行的变动)。 |
refactor | 重构(即不是新增功能,也不是修改bug的代码变动)。 |
perf | 优化相关,比如提升性能、体验。 |
test | 增加测试。 |
chore | 构建过程或辅助工具的变动。 |
revert | 回滚到上一个版本。 |
merge | 代码合并。 |
sync | 同步主线或分支的Bug。 |
master、origin master 与 origin/master 有什么区别?
ref:https://blog.twofei.com/695/
git fetch vs git pull
git blame
如果你要查看文件的每个部分是谁修改的,那么 git blame 就是不二选择. 只要运行git blame [filename],你就会得到整个文件的每一行的详细修改信息