【问题标题】:Staging several changes in one commit in Git?在 Git 的一次提交中进行多个更改?
【发布时间】:2021-05-20 01:50:03
【问题描述】:

我正在看 Coursera 的 git 课程。

有一部分我不明白讲师在哪里说过,“暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。”

我很困惑,因为据我所知,一个提交命令会提交多个更改,而不是进行多个更改。如果我想进行更改,我不必调用 git add 命令吗?

请让我知道我缺少什么。

【问题讨论】:

    标签: git commit stage


    【解决方案1】:

    如果我想暂存更改,我不必调用 git add 命令吗?

    如果您想暂存然后提交 所有 更改,您可以:

    git commit -am "all changes"
    

    但如果您想提交一些更改,您可以通过先将文件添加到缓存中来准备下一次提交。
    见“GitHowTo: Staging and committing

    git 中的暂存步骤允许您继续对工作目录进行更改,并且当您决定要与版本控制交互时,它允许您在小提交中记录更改。

    假设您编辑了三个文件(a.htmlb.htmlc.html)。
    之后,您需要提交所有更改,以便对a.htmlb.html 的更改是一次提交,而对c.html 的更改在逻辑上与前两个文件没有关联,而是在单独的提交中完成。

    理论上你可以做到以下几点:

    git add a.html
    git add b.html
    git commit -m "Changes for a and b"
    

    然后:

    git add c.html
    git commit -m "Unrelated change to c"
    

    将暂存和提交分开,您有机会轻松自定义提交的内容。

    【讨论】:

      【解决方案2】:

      暂存和提交之间的单独步骤允许我们在一次提交中暂存多个更改。

      它强调 staging(即add 命令)和 committing 是不同的步骤,它允许在您提交之前进行多个 staging 轮次(如果需要)。

      但您确实可以将所有内容暂存,然后只提交一次。没有说(甚至暗示)提交阶段的事情。句子的主语是单独的步骤

      什么不清楚?

      【讨论】:

      • 谢谢!我理解您的明确解释:它强调分阶段(即添加命令)和提交是不同的步骤,它允许在您提交之前进行多个分阶段(如果需要)。我知道我可以立即上演和提交。但我仍然没有得到允许我们在一次提交中“暂存”多个更改的单独步骤。是的,单独的步骤是主题,但是“我们”可以“在一次提交中”“暂存”更改,而不是我们可以“在一次提交中”“提交”已暂存的更改,我认为这是不一样的。
      猜你喜欢
      • 2017-11-01
      • 2017-12-22
      • 2011-08-17
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2015-07-27
      • 2021-08-09
      相关资源
      最近更新 更多