Git
获取远程分支并切换到该分支
git checkout -b branchName origin/branchName
// 切换不成功,先拉下代码
Review pull request
git co -b review/xxx
# 添加别人的 repo 源
git remote add [源简称] https://github.com/[username]/[repo]
git pull [源简称] [分支]
Review 后,删除源
git remote remove [源简称]
git remote -v
跳过 git hooks 的 lint 检查
git commit --no-verify -am 'xxx'
SubModules
拿最新的 SubModules 代码
git submodule update
更新 SubModules 代码
git submodule sync
Sync fork repo latest code
git remote add [源简称] https://github.com/原仓库地址.git
git fetch [源简称]
git merge upstream/main
一般 源简称
叫 upstream。
获取远程分支
git fetch origin branchName:branchName
删除本地分支
git branch -D branchName
强制回滚到某个版本
git reset --hard commitId
git ph -f
暂存和恢复
git stash # 暂存
git stash pop # 恢复
用 rebase 的方式合并分支
以 master 为基,把 master
合并到 feature/a
为例。和 merge 的命令类似:
git checkout master
git pl
git checkout **feature/a**
git pl
git rebase master
git push --force-with-lease
# 自己开发的分支,可以这么做。rebase 改了提交顺序。本地分支和远程分支不一样了。
# 否则,git pull 来合并吧。
将多次 Commit 合并成一次
# 1 rebase
git rebase -i commitId # 要 合并 的前一次。
# git rebase -i HEAD~3 # 最后个数字是合并几次。
# 2 编辑内容
# 2.1 将第一个 commitId 前的 pick 改成 r
# 2.2 将其他的 commitId 前的 pick 改成 f
## 3 修改提交信息
# 2 结束后,会出现编辑器来改提交信息。
## 4 强推
git push --force-with-lease # rebase 改了提交顺序。本地分支和远程分支不一样了。
合并分支时,将多次 Commit 合并成一次
git merge --squash 分支名
其他分支合并策略: 图解4种git合并分支方法。
合并其他分支的某次提交
git cherry-pick commitID
提交信息前缀
feat
: new feature for the user, not a new feature for build scriptfix
: bug fix for the user, not a fix to a build scriptdocs
: changes to the documentationstyle
: formatting, missing semi colons, etc; no production code changerefactor
: refactoring production code, eg. renaming a variableperf
: add code for performance testtest
: adding missing tests, refactoring tests; no production code changechore
: updating grunt tasks etc; no production code change
配置别名
git config --global alias.st status
git config --global alias.pl 'pull --all --rebase' # 用 rebase 来合并代码
git config --global alias.aa 'add -A'
git config --global alias.ci commit
git config --global alias.ca 'commit -am'
git config --global alias.caa 'commit -am "just add"'
git config --global alias.ph push
git config --global alias.co checkout
git config --global alias.br branch
所有配置
git config --list
改了 Git 密码后的处理
Mac 会默认会从密钥链里拿。git config 里会有一句
credential.helper=osxkeychain
密码改后, 要删除旧的凭证:Keychain access > 搜索 github.com(或其他代码托管网站) > "互联网密码“> 删除。再做一次,会要求输用户名和密码,更新到新的凭证。
具体见 这里。
SSH Key 位置
mac:
open ~/.ssh