1. 全局配置

  • 通过命令 git config --global <key> <value> 配置, 如
    • git config --global autocrlf input (core 组的 core 可以省略)
    • git config --global user.name jarvis73 (user 组的 user 不可以省略)
  • 或者直接向 ~/.gitconfig 中写入:
    1. [core]
    2. editor = vim
    3. autocrlf = input
    4. safecrlf = true
    5. [user]
    6. email = <address>
    7. name = <github name>

2. 本地仓库

2.1 创建过程

  • 初始化仓库 git init
  • 暂存修改 a.txt git add a.txt
  • 暂存修改所有文件 git add .
  • 创建提交 git commit -m "some comments"
  • 创建分支 git branch <branch name>
  • 切换分支 git checkout <branch name>
  • 创建并切换分支 git checkout -b <branch name>
  • 当前分支向前合并到 hotfix git merge hotfix , 当前分支和hotfix是父子(包含父孙)关系时, 则当前分支直接前进到hotfix; 当前分支和hotfix的第一个公共节点是二者的共同祖先时, 合并是通过考虑当前分支, hotfix, 以及二者的祖先创建了一个”三方合并”来完成的, 会创建一个当前分支和hotfix共同的子节点来表示此次合并.

    2.2 撤销和删除过程

  • 删除文件此次的全部改动(未暂存) git checkout -- <filename>

  • 撤销暂存(暂存后未修改) a.txt git reset a.txt
  • 撤销所有暂存(暂存后未修改) git reset
  • 删除所有修改(包括已暂存的和未暂存的) git checkout . 谨慎使用
  • 删除分支 git branch -d <branch name>
  • 撤销修改并回退到某节点(保留修改) git reset --soft <HASH>
  • 撤销修改并回退到某节点(删除修改) git reset --hard <HASH> 谨慎使用

    2.3 其他操作

  • 提交后, 补充修改了一些内容, 暂存, 最后补充提交 git commit --amend

  • 搁置修改(用于保留下当前的修改, 并清理工作区) git stash
  • 恢复搁置的修改 git stash pop

3. 远程仓库

  • 推送到远程仓库 git push origin master , 可以简写 git pull
  • 从远程仓库拉取 git fetch origin master , 可以简写为 git fetch
  • 从远程仓库拉取并合并到当前分支 git pull origin master , 可以简写为 git pull