Git 常用命令整理
✨ Git 是一款代码版本控制工具,常用于团队协作开发。本文主要是整理的一些常见的 Git 命令,这些命令覆盖了 Git 常用的操作场景,可以帮助开发者更好地使用 Git 进行版本控制和协作开发。
Git 作为代码版本控制工具,也是要经常打交道的存在。虽然在各类 IDE 中已经将其大部分操作实现了很好的图形化用户交互,但命令行作为与 Git 打交道的基础,还是不可或缺。在此将常用的一些场景命令整理一下。

Local repository
# 初始化本地仓库
git init
# 添加当前路径下所有文件到暂存区
git add .
# 提交修改到本地仓库
git commit -m "Add Readme.md"Remote repository
# 添加远程仓库地址,地址形如:https://github.com/example/project.git
git remote add origin <远端仓库地址>
# 推送本地 master 分支到远程仓库
git push -u origin master.gitignore
# 于 git 项目根目录下创建 .gitignore 文件,在其中写入需要忽略的文件
*.log
node_modules/Branch
# 从远程仓库拉取(clone)项目至本地
git clone <远端仓库地址>
# 进入项目目录,创建并切换至新分支 develop
git checkout -b develop
# 删除本地分支
git branch -d develop
# 删除远程仓库 develop 分支
git push origin --delete developMerge
- 无冲突
# 切换回 master 分支
git checkout master
# 将 develop 分支合并到 master
git merge develop
# 推送 master 分支到远程仓库
git push origin master- 有冲突
# 拉取远程 master 分支,更新至最新代码
git pull origin master
# 将 master 分支合并至 develop 分支
git merge master
# 此时会提示冲突,逐个文件解决,编辑保存
# 添加文件至暂存区
git add .
# 提交冲突修改 commit
git commit -m "Fix conflict"
# 推送 develop 分支至远程仓库
git push origin developRebase
# 假定在 develop 分支
git checkout develop
# 将此分支 rebase 到 master 分支
git rebase master
# 强制推送至远程仓库
git push -f origin develop
# 切回 master 分支
git checkout master
# 合并 develop 至 master
git merge develop
# 推送 master 至远程仓库
git push origin master| 比较项 | rebase | merge |
| 定义 | 把自己的分支变基到目标分支上,提交历史放在目标分支最后 | 把目标分支合并到自己分支上,提交历史合并成一个新的提交 |
| 原理 | 1. 检出当前分支 2. 临时保存当前分支的提交历史 3. 检出base分支 4. 将当前分支的提交逐个添加到base分支上 5. 检出当前分支 6. 将临时保存的提交历史删除,改为指向rebase后的提交 | 1. 检出当前分支 2. 合并base分支到当前分支,生成一个merge提交 |
| 提交历史 | 简洁线性,所有提交按时间排列 | 保留完整分支历史,存在merge提交 |
| 优点 | 清晰可读的历史,方便代码审查 | 保留完整提交历史,易追溯变更 |
| 缺点 | 改写提交历史,可能导致冲突 | 多merge提交,历史复杂难读 |
| 使用场景 | 私有分支开发和维护 | 公共分支开发和合作 |
Tag
# 基于当前分支代码打上一个标签,名为 v0.1
git tag v0.1
# 推送标签至远程仓库
git push origin v0.1Reset
# 回退到3个版本前的代码, 有多种 reset 模式,视情况而定
git reset HEAD~3
# 查看当前仓库修改状态
git status
git add .
git commit -m "fix something"
# 强制推送至远端仓库
git push -f origin masterReflog
# 查看所有提交记录
git reflog
# 强制回退当前代码至相应版本
git reset --hard <commit ID>
# 基于指定的版本创建新分支
git checkout -b new_develop <commit ID>
git push origin new_developRevert
# 查看提交历史
git log
# 回滚到指定的提交
git revert <commit ID>
# 推送至远程
git push origin masterStash
# 暂存当前分支的修改
git stash
# 切到 master
git checkout master
# 拉取更新
git pull origin master
# 创建热修复分支
git checkout -b hotfix
# 修复bug,提交,切回 master
git checkout master
# 将 hotfix 分支合并进 master
git merge hotfix
git push origin master
git branch -d hotfix
# 切回 develop 分支
git checkout develop
# 恢复暂存的修改内容
git stash pop
# 查看暂存修改列表
git stash list
# 恢复指定的修改
git stash apply stash@{1}Commit
# 在刚刚提交的提交中发现问题并修改,不想产生新的提交
git add .
# 修改最近的提交
git commit --amend
# 强制推送
git push -f origin masterChery-pick
# 查看提交历史
git log
# 切到 master
git checkout master
# 将指定提交捡(复制)来当前分支
git cherry-pick <commit ID>
# 推送到远程
git push origin master更多参考
- Learn Git with Bitbucket Cloud
- Learn Git Basics
- Learn Git Branching
- Git - Book
- Git-Learnnig
- 猴子都能懂的 GIT 入门
- 深入理解git 合并操作
- V2-1 / V2-2
- 三种git流程以及发版模型
- 不同项目使用不同的Git配置