git 如何取消暂存(但保持合并)

uplii1fm  于 2023-03-28  发布在  Git
关注(0)|答案(2)|浏览(167)

所以我做了一个:

git merge --no-ff --no-commit source\branch

很好,合并正在进行中(我在.git文件夹中有一个MERGE_HEAD)...但它暂存了一些文件...
我想卸载这些文件,但不想取消合并....
我可以通过Visual Studio集成开发环境来实现这一点.....
但是一个

git reset

似乎取消合并[MERGE_HEAD消失]....
如何取消暂存,但将其保留为正在进行的合并,以便我可以进行实际更改,但将其记录为合并(多父)

**注意:这个问题与我见过的所有其他问题都不同,因为需要保留现有的MEGE_HEAD和相关状态...

deyfvvtc

deyfvvtc1#

要提前做,告诉Git根本不做自动合并:

git merge --no-commit --no-ff -s ours sourcebranch

要追溯执行此操作,有一个核心命令可以撤销自动合并(只需使用-s ours结果对其进行踩踏):

git read-tree --reset @
thtygnil

thtygnil2#

尝试git reset .git reset <path1> <path2> ...
或者使用git restore

git restore --staged .

具有pathspec的版本会重置指定路径的索引条目,但不影响活动提交。
另一方面,如果你没有指定路径,git reset将改变活动提交或当前分支的状态,并且显然会丢弃正在进行的合并的信息(我可以在测试仓库中重现相同的行为)。

相关问题