21

我真的不喜欢 git 暂存区,它只会让我的生活不必要地混乱。

是否可以禁用它,以便所有已编辑和新文件都在一个上下文中?所以 git diff 显示了存储库和我的工作目录之间的差异(我不必也输入 git diff --cached),因此 git ci 会检查我的整个工作副本(不仅仅是暂存的部分)。

如果没有,替代方案(例如设置配置)以使我看起来没有分期也很棒。

我没有选择更改为不同的 DVCS 的选项,也不想学习喜欢暂存区。请不要张贴建议这些:(

谢谢,-肖恩

PS:我在 superuser.com,https ://superuser.com/questions/192022/disable-git-staging-area 上问过这个问题,但该论坛的帖子似乎少得多(只有 118 个标记的 git 与此处的 4448 个相比)

4

5 回答 5

6

不,你学会爱它。

更严肃地说,git add -A; git commit可能是你的朋友。这样,您就可以避免与暂存区的大部分交互(和好处)。

git add -A比平时更强大git commit -a。它将找到新文件以及暂存修改的内容并删除不再在工作树中的文件。

于 2010-09-30T20:38:51.683 回答
4

别名是你的朋友。

例如,您可以创建一个 diff 命令,用最少的输入来执行您想要的操作:在您的.gitconfigput

[alias]
        di = diff HEAD
        co = commit -a

然后你可以简单地做git di,你得到你自己的差异,或者git co得到你自己的个人提交命令。

于 2010-09-30T20:59:13.297 回答
2

您可以只使用git commit -a提交所有更改/删除的文件。您仍然需要手动添加未跟踪的文件。

我来自 Subversion,起初也对暂存区感到困惑。但是你会发现它非常有用。如果您暂存已测试的更改,但进行了更多破坏构建的更改,您可以重置回暂存的更改。

于 2010-09-30T20:37:59.953 回答
1

暂存区(IMO)是 Git 的最大优势之一,它真正展示了它与几乎任何其他 DVCS 的不同之处。

您可以使用

git commit -a

自动添加更改的文件。但是,对于未跟踪的文件,您需要自己处理。练习git add . && git commit

如果您不喜欢它,请使用另一个 VCS。强制使用 git 存储库?查看一些可用的兼容插件,例如hg-git


就个人而言,我会学习发挥 git 的优势而不是与之抗争。想象一下,您在一个大而杂乱的分支中间,但您需要提交一些选择性更改以进行生产。繁荣,git add [files]然后提交和推动。回去工作,不要搞砸其他任何事情。还有无数其他示例,但这可能是最容易理解的。

于 2010-09-30T20:38:50.143 回答
-1

而且我不想学着喜欢集结区。请不要张贴建议这些:(

像所有其他人一样。我会建议你学会喜欢暂存区。它确实很有用,即使 90% 的时间你都会忽略它。

如果您目前认为它没有用,那么我认为您正在考虑提交错误。您仍在考虑单个文件或同时考虑所有内容。考虑提交的正确方法是按功能/修复,并且功能/修复通常分布在多个文件中。您应该将相关更改分组到单个提交中。有时,这组更改并不包含所有当前的更改。这就是分期变得有用的时候。

我知道这不是您想听到的,但实际上,当您停止与该工具抗争并学会使用它的那一刻,就是它不再“痛苦”地使用该工具的那一刻。

于 2010-09-30T21:02:04.907 回答