3.1 Git本地仓库的使用.png

括号中的蓝色字标注了Oh-my-zsh简写命令

配置Git

  1. git config --global user.name BarryZhu # 用户名称
  2. git config --global user.email zhuye256@163.com # 邮箱
  3. git config --global push.default simple # 只能推送到与本地分支名一致的upstream分支中
  4. git config --global core.quotepath false
  5. git config --global core.editor "code --wait"
  6. git config --global core.autocrlf input

【Git】git push.default 简析

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

解决冲突的办法:

  1. 发现冲突
  • 在合并分支时,会得到Conflict
  • 使用git status -sb查看哪些文件冲突
  1. 解决冲突
  • 依次打开每个文件
  • 搜索====
  • 在上下两部分中选择需要保留的代码
  • 删除不用的代码
  • 使用git add对应文件
  • 再次git status -sb,解决下一个冲突
  • 直到没有冲突,再使用git commit(无参数)提交

Git 高级功能

  1. 使用 zsh alias 简化命令
  1. $ touch ~/.zshrc
  2. $ echo 'alias ga="git add"'>> ~/.zshrc
  3. $ echo 'alias gc="git commit -v"'>> ~/.zshrc
  4. $ echo 'alias gl="git pull"'>> ~/.zshrc
  5. $ echo 'alias gp="git push"'>> ~/.zshrc
  6. $ echo 'alias gco="git checkout"'>> ~/.zshrc
  7. $ echo 'alias gst="git status -sb"'>> ~/.zshrc

Oh-my-zsh自带git插件,可以不用配置,参考: Oh-my-zsh下的 git 快捷键

  1. 使用rebase合并提交记录
  1. $ git rebase -i [提交号]

参考: 彻底搞懂 git rebase

  1. 使用stash保存和恢复进度
  1. $ git stash # 保存当前工作进度,会把暂存区和工作区的改动保存起来
  2. $ git stash pop # 恢复最新的进度到工作区

参考: 使用 git stash 命令保存和恢复进度


总结

1. .git目录就是本地仓库

  • 不会重复复制文件(优化)
  • 支持多个分支

2. 一些细节

  • git add处理的是文件变化,不是文件
  • 使用频率最高的是git addgit commit -v
  • 熟练使用命令行进行操作

3. 可以在VSCode中使用Git Easy进行操作

参考资料:常用 Git 命令清单 - 阮一峰


部分资料来源:饥人谷 - 方方老师