Appearance
Git
常用指令
sh
git branch # 列出所有分支
git checkout -b 新分支 # 基于当前分支创建并切换到新分支
git branch 新分支 A # 基于A分支创建新分支
git merge B # 合并B分支
git status # 查看仓库当前的状态,显示有变更的文件
git remote -v # 显示所有远程仓库
git fetch # 从远程获取最新代码库,不会合并到本地工作目录
账户配置
- 配置账户信息
sh
# 全局账户
git config --global user.name 'Your Name'
git config --global user.email 'Your Email'
# 局部账户, 只对当前项目文件生效
git config --local user.name 'Your Name'
git config --local user.email 'Your Email'
- 查看账户配置信息
sh
git config --list
git config --global --list # 全局
git config --local --list # 局部
- 编辑配置文件
sh
git config -e # 针对当前仓库
git config -e --global # 针对系统上所有仓库
创建并关联远程仓库
新建本地分支
shgit init git add . git commit -m'init'
关联远程分支
shgit remote add origin Url # 关联远程仓库 git push -u origin master # 关联分支并推送 # 本地已有分支设置关联 git branch --set-upstream-to=origin/master master
删除分支
- 删除本地分支
sh
git branch -d dev
- 删除远程分支
sh
git push origin --delete dev
撤销与回滚
撤销的几种含义
sh
git reset --hard HEAD^ # 回退到上个版本
git reset --hard HEAD~n # 代表回推到n次前的操作
git reset --hard commit_id # 回退到指定的版本
git reset
和 git revert
区别:
reset
: 回到某次提交,提交及之前的 commit 都会被保留,但是此 commit id 之后的修改都会被删除revert
: 用一次新的 commit 来回滚之前的 commit,此次提交之前的 commit 都会被保留
几种场景
1. 只提交到暂存区(git add .)
sh
git reset HEAD .
2. 代码还未 push, 在本地分支中
sh
git log # 得到提交的commit_id
git reset --hard <commit_id> # 回退到指定版本
3. 代码已提交至远程仓库
sh
git log # 得到提交的commit_id
git reset --hard <commit_id>
# 强制提交一次,之前错误的提交从远程仓库删除
git push origin HEAD --force
查看提交历史
后缀可以同时使用, 更精准显示想要的日志信息
sh
git log # 详细历史提交记录
git log --oneline # 简洁历史提交记录
git log --graph # 拓扑图形式的提交记录
git log --reverse # 逆向显示所有日志
git log --author=Tom # 查看指定用户提交记录
git blame fileName # 指定文件修改记录
tag 标签
sh
git tag -a v1.4 -m "my version 1.4" # 创建一个带注解的标签
git tag -d v1.4 # 删除本地标签
git tag # 列出所有标签
git push origin :refs/tags/v1.4 # 删除远程标签
git push origin v1.4 # 单个标签推送
git push origin --tags # 推送所有标签
提交规范
commit 提交信息: Type + Description
Type
- feat:提交新功能
- fix:修复了 bug
- docs:只修改了文档
- style:调整代码格式,未修改代码逻辑
- refactor:代码重构,既没修复 bug 也没有添加新功能
- perf:性能优化,提高性能的代码更改
- test:添加或修改代码测试
- chore:对构建流程或辅助工具和依赖库的更改
Description
- 使用动词
- 不要大写首字母
- 结尾不要使用句号
示例:
sh
feat: add beta sequence
docs: explain hat wobble