禁用git暂存区域

时间:2010-09-30 20:35:23

标签: git version-control configuration staging

我真的不喜欢git临时区域,它只是让我的生活变得不必要地混乱。

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

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

我没有选择更改为其他DVCS的选项,我不想学习喜欢临时区域。请不要张贴建议这些:(

谢谢, -Shawn

PS:我在superuser.com上问过这个问题,https://superuser.com/questions/192022/disable-git-staging-area,但该论坛似乎发布的内容少得多(只有118个标记的git,而这里只有4448个)

5 个答案:

答案 0 :(得分:7)

没有。你学会了喜欢它。

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

git add -A比通常git commit -a更强大。它将查找新文件以及暂存已修改的内容并删除不再位于工作树中的文件。

答案 1 :(得分:4)

别名是你的朋友。

例如,您可以创建一个diff命令,以最小的输入执行您想要的操作:在.gitconfig put

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

然后您可以简单地执行git di并获得自己的差异,或git co并获得您自己的个人提交命令。

答案 2 :(得分:2)

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

我来自Subversion,最初也被临时区域搞糊涂了。但你会发现它非常有用。如果您对已经测试过的更改进行了分级但是进行了更多破坏构建的更改,则可以重置为分阶段更改。

答案 3 :(得分:1)

暂存区域是(IMO)Git最大的优势之一,并且真正展示了它与其他任何DVCS的区别。

您可以使用

git commit -a

自动添加更改的文件。对于未跟踪的文件,您可以自己动手。练习git add . && git commit

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


就我个人而言,我会学会发挥git的优势而不是与之斗争。想象一下,你正处于一个大混乱的分支中间,但你需要为生产做出一些选择性的改变。繁荣,git add [files]然后提交并推送。回去工作,不要弄乱任何其他东西。还有无数其他的例子,但这可能是最容易理解的。

答案 4 :(得分:0)

  
    

我不想学习喜欢临时区域。请不要张贴建议这些:(

  

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

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

我知道这不是你想要听到的,但实际上,当你停止对抗工具并​​学会忍受它的那一刻就是它不再使用该工具“痛苦”的那一刻。