我认为对于git初学者来说最令人困惑的是主要命令根据参数或上下文有多种用途,其中一些用法没有通过命令的名称来描述。
合并(Merge)
- 合并不同的分支(不同的历史,更确切地说)
- 如果不需要合并,则快进 ; 有效地将分支头重新定位到后代提交
- 不需要结果的
git pull
变基(Rebase)
- 重放一组提交,就像它们是基于另一个父级一样
- 交互式地用于历史清理:重新排序和压缩相关的提交
- 应该用来
git pull
代替合并
重置(reset)
- 重置(unstages)更改添加到索引; 撤销
git add
- 将分支头重新定位到另一个提交; 可选地重置索引和工作树
- 撤消提交,要么丢弃更改,要么保留它们以供下次提交
- 丢弃自上次提交以来的所有工作副本更改
签出(checkout)
- 切换分支
- 创建一个新分支并切换到它
- 签出另一个提交中的文件或目录
- 丢弃自上次提交以来的所有工作副本更改
- 解决合并冲突