首页 > 解决方案 > pyCharm 会在 git commit 之前自动添加吗?

问题描述

我知道我们应该在做git add之前先做git commit

但是,当使用 PyCharm GUI 时,在提交之前是否需要添加文件变得不清楚。这是因为当按下 PyCharm Commit按钮时,PyCharm 似乎会隐式添加文件。我这么说是因为我在按下Commit按钮(甚至没有按下 Add 按钮)后在 PyCharm 控制台中看到了这些消息:

14:39:16.099: [get-learning] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false add --ignore-errors -A -f -- main.py
14:39:16.106: [get-learning] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false commit -F /private/var/folders/wy/sn6rs9nj1bd3bsk6p66gmwr40000gn/T/git-commit-msg-.txt --

我不是 Git 专家,但我可以看到第一个命令是一个add命令。

这是否意味着 PyCharm 在提交之前会自动添加文件,并且我不需要在按下 PyCharm 中的 Commit 按钮之前按下 Add 按钮?

标签: gitpycharmaddcommit

解决方案


是的,pyCharm 自动添加

即使没有,添加仍然是提交的基本部分。

我知道我们应该在做git add之前先做git commit

好吧,有时我们必须这样做,但这在 pyCharm 中无关紧要,更多的是一般的 Git 主题。

在您的情况下,您正在添加:git ... add .. file.txt. 你应该用两个单独的动作来做吗?好吧,这并没有太大区别,因为您正在执行相同的命令,不是吗?

为了在 Git 中提交,您总是必须先添加(添加到索引,或者暂时绕过索引并使用临时索引 - 见下文),然后提交。如果您不觉得这就是您正在做的事情,那么界面会为您掩盖这一点 - 这在大多数 IDE 中相当常见,但不是您的情况。


你真的总是必须在提交之前添加吗?

正如马特正确指出的那样,人们可能会调用git commit ... <pathspec>. 从文档

<pathspec>...​ 当在命令行中给出 pathspec 时,提交与 pathspec 匹配的文件的内容,而不记录 已经添加到 index 的更改。这些文件的内容也会在之前暂存的内容之上暂存以供下一次提交。

斜体我的。基本上,这会创建一个提交,而不是从暂存区域获取内容,而是使用您刚刚提供的文件。感谢 matt,在这里查看更多。因此,最终,,您不必严格添加,但 Git 必须在提交之前生成索引和暂存文件。所以 Git 正在添加,不管你喜欢与否。


推荐阅读