从`git checkout`转到`git switch`和`git restore`
1. Git checkout 的多功能性
git checkout在过去承担了两个主要任务。
-
- 切换到分支或提交
- 将工作目录中的文件恢复到特定状态
这些功能都集中在一个命令中,给人们带来了很多混乱。
2. 新命令:git切换和git恢复
在 Git 2.23 中,引入了一个新的命令,用于明确分离上述的两个任务。
git switch: ブランチやコミットへの切り替えに特化
git restore: ワーキングディレクトリやステージングエリアの変更を復元するためのコマンド
这个变更使得每个命令的角色更加明确,操作Git的直觉性增强了。
3. 命令的改变点: 对应表
古い
git checkout
の使用方法新しいコマンドgit checkout <branch>
git switch <branch>
git checkout -b <new-branch>
git switch -c <new-branch>
git checkout <file>
git restore --source=HEAD --staged --worktree <file>
git checkout -- <file>
git restore --source=HEAD --worktree <file>
git checkout --patch <file>
git restore --source=HEAD --patch <file>
4. Git restore的注意事项
如果在没有指定选项或文件路径的情况下运行git restore,则会显示”fatal: you must specify path(s) to restore”错误消息。这是因为需要明确指定要恢复的文件或目录的路径。