本文列举了 Git 的常用配置及使用方法。
1 | $ git config -g user.name "khs1994" |
常见错误
将本地分支与远程分支关系建立起来
1 | $ git branch --set-upstream dev origin/dev |
永久删除大文件
自行替换 *.db
为自己的文件规则
1 | $ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.db' --prune-empty --tag-name-filter cat -- --all |
子模块
1 | # 拉取子模块 |
拉取 PR
1 | $ git fetch origin pull/365/merge:branch-fix-1 |
配置
查看配置
1 | $ git config -l |
或者直接编辑 ~/.gitconfig
文件,但不推荐。
代理设置
--unset
取消代理
1 | $ git config --global [--unset] http.proxy 127.0.0.1:1080 |
分支
查看当前位于哪个分支
1 | # 准确打印分支,可能在 shell 脚本中用的多 |
基本操作
1 | $ git checkout -b NEW_BRANCH |
恢复
本地仓库与远程仓库保持一致(强制覆盖)
1 | # 拉取远程所有分支 |
恢复某文件到上一次 commit 状态(未 add)
1 | $ git checkout -- modify.md |
将 add 的文件移出
1 | $ git reset HEAD file.md |
fork 与上游代码保持更新
1 | $ git remote -v |
拉取远程仓库的分支(本地分支不存在)
1 | $ git fetch remote_repo remote_branch_name:local_branch_name |
本地分支推送到不同名远程分支
1 | $ git push origin master:gh-pages |
tag
1 | $ git tag TAG_NAME commit号 |
删除远程标签
1 | $ git push origin --delete tag <tagName> |
Stash
暂时储藏已修改未提交的文件,修复 bug 时会用到。
1 | $ git stash |
commit
1 | $ git commit --amend # 重新编辑上一次提交 |