可以执行哪些操作来获得移动的所有可能组合
- 分支指针
- 头部
- 索引
- 工作树
假设我们有这样的布局:
* 1234567 (HEAD -> K, b) 2nd
* 7654321 (a) 1st
我们目前在分支K上。分支a
和b
的设置是为了方便编写示例
单次移动
分支指针
git checkout --detach; git branch -f K a
头部
git checkout --detach a; git restore --worktree --staged --source=b .
或者,过去的方式(仍然有效(:
git checkout --detach a; git checkout b -- .
索引
git restore --staged --source=a .
工作树
git restore --worktree --source=a .
2个项目的组合
分支指针和HEAD
git reset --soft a
分支指针和索引或工作树:
运行这两个项目以分别移动它们。
HEAD和索引
git checkout --detach a; git restore --worktree --source=b .
头部和工作树
git checkout --detach a; git restore --staged --source=b .
索引和工作树
git restore --worktree --staged --source=a .
在过去:
git checkout a -- .
3个项目的组合
除分支指针外的所有
git checkout --detach b
除头部外的所有
git checkout --detach; git branch -f K a; git restore --staged --worktree --source=a .
除索引外的所有
git reset --hard a; git restore --staged --source=b .
除工作树外的所有
git reset a
移动所有内容
git reset --hard a