Git 但是我可以禁用暂存区吗?
我发现了两个问题(由同一个用户提出)关于是否可以禁用临时区域Git 但是我可以禁用暂存区吗?,git,Git,我发现了两个问题(由同一个用户提出)关于是否可以禁用临时区域 没有一个答案真正回答了这个问题。它们都是某种味道的 你应该学会热爱舞台 改用commit-a 但真正的答案是什么?我是否可以设置git选项,以便将部分更改移动到临时区域的尝试失败?我猜答案是“不”,因为如果答案是“是”的话,有人会在上面的一个问题上提到它 (对于上下文,我使用commit--patch提交,我认为不需要临时区域。) (编辑:我想知道如何禁用临时区域,因为我希望经验较少的合作者能够避免以工具强制的方式与此功能
- 你应该学会热爱舞台
- 改用
commit-a
但真正的答案是什么?我是否可以设置git选项,以便将部分更改移动到临时区域的尝试失败?我猜答案是“不”,因为如果答案是“是”的话,有人会在上面的一个问题上提到它 (对于上下文,我使用
commit--patch
提交,我认为不需要临时区域。)
(编辑:我想知道如何禁用临时区域,因为我希望经验较少的合作者能够避免以工具强制的方式与此功能交互。Git已经让他们很困惑了。临时区域是一个额外的不必要的复杂性。)不,这是不可能的。许多人都试图隐藏或隐藏Git的索引,也就是缓存,也就是暂存区,但都失败了,原因很简单:Git实际上从索引/暂存区中的任何内容进行新的提交 这有几个后果,其中一些是立即发生的,一些是稍后发生的,包括:
git commit-a
来解决这个问题,它的效果非常类似于在运行git commit
之前运行git add-u
git commit-a
解决它git status
命令运行两个比较:一个从HEAD
commit到索引,另一个从索引到工作树。解释其输出的唯一方法是确认索引的存在git add-p
和其他面向补丁的操作(checkout-p
和reset-p
)存储部分更改。当然,你可以完全避免这些;那么你就看不到索引的这个方面了头部
或本地或--我们的
版本进入插槽2,远程或其他或--他们的
版本进入插槽3。解决冲突实际上意味着自己进行合并工作,然后将结果复制到正常的暂存槽0中,删除三个编号较高的暂存条目要使Git像Mercurial一样工作,您需要包装每个Git操作:向用户隐藏整个用户界面和实现,并使用一些辅助状态来跟踪索引状态为何是这样。本质上,您需要创建自己的manifest和dircache来记住哪些文件要复制到索引中或从索引中复制出来,从而使事情看起来好像工作树就是建议的提交。您需要自己的状态包装器,甚至可能希望始终在分离头部模式下运行(我没有充分考虑角落案例,例如,
hg histedit
等效)。不,这是不可能的。许多人都试图隐藏或隐藏Git的索引,也就是缓存,也就是暂存区,但都失败了,原因很简单:Git实际上从索引/暂存区中的任何内容进行新的提交
这有几个后果,其中一些是立即发生的,一些是稍后发生的,包括:
git commit-a
来解决这个问题,它的效果非常类似于在运行git commit
之前运行git add-u
git commit-a
解决它git status
命令运行两个比较:一个从HEAD
commit到索引,另一个从索引到工作树。解释其输出的唯一方法是确认索引的存在