我認爲對於git初學者來說最令人困惑的是主要命令根據參數或上下文有多種用途,其中一些用法沒有通過命令的名稱來描述。
合併(Merge)
- 合併不同的分支(不同的歷史,更確切地說)
- 如果不需要合併,則快進 ; 有效地將分支頭重新定位到後代提交
- 不需要結果的
git pull
變基(Rebase)
- 重放一組提交,就像它們是基於另一個父級一樣
- 交互式地用於歷史清理:重新排序和壓縮相關的提交
- 應該用來
git pull
代替合併
重置(reset)
- 重置(unstages)更改添加到索引; 撤銷
git add
- 將分支頭重新定位到另一個提交; 可選地重置索引和工作樹
- 撤消提交,要麼丟棄更改,要麼保留它們以供下次提交
- 丟棄自上次提交以來的所有工作副本更改
簽出(checkout)
- 切換分支
- 創建一個新分支並切換到它
- 籤出另一個提交中的文件或目錄
- 丟棄自上次提交以來的所有工作副本更改
- 解決合併衝突