本文 首发于 🌱 煎茶转载 请注明 来源

# 注:若没有标记“远程”,则默认为操作本地分支。

# 检查当前状态 
$ git status

# 避免协同时自动生成 merge commit (把远程最新的 commit 以变基的方式同步到本地)
$ git pull --rebase

# 跟踪新文件(.标识当前目录下所有文件,也可指定文件)
$ git add .

# 删除暂存区文件(修改.gitignore 后需移除暂存区生效)
$ git rm --cached README

# 查看变化
$ git diff

# 提交更新
$ git commit -m "Story 182: Fix benchmarks for speed"

# 新增分支
$ git branch newBranchName

# 切换分支
$ git checkout newBranchName

# 修改分支名
$ git branch -m oldBranchName newBranchName

# 新增分支并切换至新分支
$ git checkout -b newBranchName

# 将新分支内容合并至当前分支
$ git merge newBranchName

# 删除(本地)分支
$ git branch -d newBranchName

# 将本地分支推送到远端(若不存在则新建)
$ git push origin localBranchName:remoteBranchName

# 删除(远程)分支
$ git push origin :deleteBranchName

# 从远程拉取分支
git checkout -b localBranchName origin/remoteBranchName
# 如果不成功,执行 git fetch,再重试

# 集中撤销提交
# 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft HEAD~1

# 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
git reset --mixed HEAD~1

# 删除工作空间改动代码,撤销commit,撤销git add .
git reset --hard HEAD~1

# 回退到指定 commit 版本
git reset --hard 1094a

# 查看节点树
git log --oneline --graph --decorate --all

参考文献