Git 指南
# 工作常用
# 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| git config --global user.name xxx git config --global user.email yyy
git config --global --list
git config --global core.editor vim
git config --global alias.<alias-name> <git-command>
git config --system core.editor <editor>
git config --global --edit
git init --bare <directory>
|
# 查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git status
git show 提交记录id
git diff --staged
git diff <commit> <commit>
git diff <branch>..<branch>
git branch -r git checkout XXX git remote add origin <server>
|
# 还原
1 2 3 4 5 6 7 8 9 10 11
| git restore filename
git restore --staged filename
git restore --source=HEAD-1 filename
git restore dir/
git reset --hard df66027f00c(版本号)
|
# 分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git branch
git branch branch-name git branch -d branch-name
git branch -D branch-name
git checkout branch-name git checkout -b branch-name
git merge branch-name
|
# 提交
1 2 3 4 5 6 7 8 9
| # 将文件从工作区添加到暂存区,以便将其包含在下一次提交中 git add # 提交带有签名的提交 git commit -s # 追加提交,将add的内容追加到最近一次提交 git commit --amend
# --no-edit 选项表示不打开编辑器,直接使用原来的提交信息。这个选项通常用于只修改文件内容而不修改提交信息的情况。 git commit --amend --no-edit
|
# 暂存
1 2 3 4 5 6 7
| git stash git stash list git stash clear git stash apply
git stash pop
|
# 远程相关
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 工作常用,用于拉取远程代码并且将自己的修改置于head git pull --rebase # 从远程仓库获取最新的代码,并且删除本地已经不存在的远程分支。 git fetch -p
# 提交远程 git push origin branch-name git push ssh://账号@项目路径 HEAD:分支
# 将指定的提交(可多个提交)应用到当前分支中。 git cherry-pick <commit>.. # 继续之前被中断的 cherry-pick 操作(一般是冲突了之后会中断,手动解决后使用) git cherry-pick --continue
|
--rebase
是将远程代码拉取到本地,并且将自己的修改放置在最前面。 pull 对比 pull --rebase
# 原理相关
# 文件的状态:
- untracked 未跟踪
- unmodified 未修改
- modified 已修改
- staged 已暂存
- committed 已提交
# Git 提交规范
- feat:新功能
- fix:修补 bug
- docs:文档
- style : 格式
- refactor:重构
- test:增加测试
- chore:构建过程或辅助工具的变动
# Gerrit
使用 commit --amend 追加前面提交的时候,gerrit 通过 changeId 来判断,从而使得 push 的时候可以追加到之前的提交,只是在远程加了 patchsetN