括号中的蓝色字标注了Oh-my-zsh简写命令。
配置Git
git config --global user.name BarryZhu # 用户名称
git config --global user.email zhuye256@163.com # 邮箱
git config --global push.default simple # 只能推送到与本地分支名一致的upstream分支中
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input
git init「新建」
git init
: 在当前目录新建一个Git代码库,用于容纳代码快照
git status「状态」
git status
: 显示有变更的文件(gst)git status -sb
: 简洁版status(gsb)
git log「日志」
git log
: 显示当前分支的版本历史git log --stat
: 显示commit历史,以及每次commit发生变更的文件(glg)git reflog
: 显示当前分支的最近几次提交
git add「暂存」
git add [file1] [file2]
: 将指定文件纳入版本管理(ga)git add [dir]
: 将指定目录纳入版本管理,包括子目录(ga)
对于不需要提交的文件:
- 新建.gitignore文件,在其中加入不需要提交的文件的文件名
常见:
- node_modules
- .DS_Store
- .idea
- .vscode
git commit「提交」
git commit -m [message]
: 提交暂存区到仓库区(gcmsg)git commit -v
: 提交时显示所有diff信息(后添加message)(gc)
- 后一种方式可以帮助回顾刚刚改了什么,也会迫使自己把提交理由写得更详细一些
git reset「重置」
git reset --hard [commit]
: 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
慎用
git branch「分支操作」
git branch [branch-name]
: 新建一个分支,但依然停留在当前分支(gb)git checkout -b [branch]
: 新建一个分支,并切换到该分支(gcb)git checkout [branch-name]
: 切换到指定分支,并更新工作区(gco)
当前目录有未提交代码,只要跟另一个分支不冲突,就不需要理会 如果冲突,可用
git stash
,也可以合并冲突
git merge「分支合并操作」
git merge [brange-name]
: 合并分支到当前分支(gm)
解决冲突的办法:
- 发现冲突
- 在合并分支时,会得到Conflict
- 使用
git status -sb
查看哪些文件冲突
- 解决冲突
- 依次打开每个文件
- 搜索====
- 在上下两部分中选择需要保留的代码
- 删除不用的代码
- 使用
git add
对应文件 - 再次
git status -sb
,解决下一个冲突 - 直到没有冲突,再使用
git commit
(无参数)提交
Git 高级功能
- 使用 zsh alias 简化命令
$ touch ~/.zshrc
$ echo 'alias ga="git add"'>> ~/.zshrc
$ echo 'alias gc="git commit -v"'>> ~/.zshrc
$ echo 'alias gl="git pull"'>> ~/.zshrc
$ echo 'alias gp="git push"'>> ~/.zshrc
$ echo 'alias gco="git checkout"'>> ~/.zshrc
$ echo 'alias gst="git status -sb"'>> ~/.zshrc
Oh-my-zsh自带git插件,可以不用配置,参考: Oh-my-zsh下的 git 快捷键
- 使用rebase合并提交记录
$ git rebase -i [提交号]
参考: 彻底搞懂 git rebase
- 使用stash保存和恢复进度
$ git stash # 保存当前工作进度,会把暂存区和工作区的改动保存起来
$ git stash pop # 恢复最新的进度到工作区
总结
1. .git目录就是本地仓库
- 不会重复复制文件(优化)
- 支持多个分支
2. 一些细节
git add
处理的是文件变化,不是文件- 使用频率最高的是
git add
和git commit -v
- 熟练使用命令行进行操作
3. 可以在VSCode中使用Git Easy进行操作
参考资料:常用 Git 命令清单 - 阮一峰