如何使用单个命令暂存和提交所有文件,包括新添加的文件?

Ana*_*ran 401 git

如何使用单个命令暂存和提交所有文件,包括新添加的文件?

Ian*_*and 537

是否

git add -A && git commit -m "Your Message"
Run Code Online (Sandbox Code Playgroud)

算作"单一命令"?


解释(来自git alias文档):

-A, - all, - no-ignore-removal

不仅更新工作树具有文件匹配的索引,还更新索引已有条目的位置.这将添加,修改和删除索引条目以匹配工作树.

如果git add在使用-A选项时未给出,则更新整个工作树中的所有文件(旧版本的Git用于限制对当前目录及其子目录的更新).

  • @NarendraJaggi git add -A && git commit -m"你的消息" (10认同)
  • 提交消息怎么样? (3认同)
  • 在powershell中将"&&"替换为";" 运行这两个命令,如下所示:`git add -A; git commit -m"你的消息"` (3认同)

Jai*_*thi 407

此命令将添加并提交所有已修改的文件,但不会添加和提交新创建的文件.

git commit -am  "<commit message>"
Run Code Online (Sandbox Code Playgroud)

来自man git-commit:

   -a, --all
       Tell the command to automatically stage files that have been modified
       and deleted, but new files you have not told Git about are not
       affected.
Run Code Online (Sandbox Code Playgroud)

  • 这实际上并没有回答这个问题,事实上(特别是粗体)排除了寻求解决方案的关键部分之一. (97认同)
  • 不添加或提交未跟踪的文件. (5认同)
  • 但是它涵盖了在"git add -A"之后提交的最典型情况,并注意到您忘记在代码中更改一些小东西.我讨厌从头开始多次写同一个提交消息 (3认同)

phl*_*ppn 25

我用这个函数:

gcaa() { git add --all && git commit -m "$*" }
Run Code Online (Sandbox Code Playgroud)

在我的zsh配置文件中,所以我可以这样做:

> gcaa This is the commit message
Run Code Online (Sandbox Code Playgroud)

自动暂存和提交所有文件.

  • @Damilola - 你所说的 *bash-like* 是什么意思?答案中的语法也适用于 bash (2认同)

Yar*_*rin 23

单行播放所有文件(修改,删除)并提交评论:

git add --all && git commit -m "comment"
Run Code Online (Sandbox Code Playgroud)

http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit


小智 19

不知道为什么这些答案都围绕我认为是正确的解决方案而跳舞,但是我在这里使用的是什么:

创建别名:

git config --global alias.coa '!git add -A && git commit -m'
Run Code Online (Sandbox Code Playgroud)

添加所有文件并提交消息:

git coa "A bunch of horrible changes"
Run Code Online (Sandbox Code Playgroud)

注意:coa是提交所有内容的缩写,可以替换为您心中所需的任何内容

  • 没有其他答案成功地简化了使用消息提交所有内容的过程。 (3认同)
  • 太棒了,一直在寻找`git alias`的方式,其余的都很无聊。 (2认同)

小智 8

在git中提交可以是一个多步骤过程,也可以是一个步骤,具体取决于具体情况.

  1. 这种情况是您有多个文件更新并想要提交:

    您必须在提交任何内容之前添加所有已修改的文件.

    git add -A
    
    Run Code Online (Sandbox Code Playgroud)

    要么

    git add --all
    
    Run Code Online (Sandbox Code Playgroud)
  2. 之后,您可以使用提交所有添加的文件

    git commit
    
    Run Code Online (Sandbox Code Playgroud)

    有了这个,你必须为这个提交添加消息.


Aje*_*i32 6

如果只希望“快速而肮脏”的方式将更改存储在当前分支上,则可以使用以下别名:

git config --global alias.temp '!git add -A && git commit -m "Temp"'  
Run Code Online (Sandbox Code Playgroud)

运行该命令后,您可以键入git tempgit自动将所有更改作为名为“ Temp”的提交自动提交到当前分支。然后,您可以git reset HEAD~稍后使用“取消提交”更改,以便您可以继续进行更改,或者git commit --amend为提交添加更多更改和/或为其指定适当的名称。


Kir*_*iya 5

运行给定的命令

git add . && git commit -m "Changes Committed"
Run Code Online (Sandbox Code Playgroud)

然而,即使看起来是一个单一的命令,它也是两个独立的命令一个接一个地运行。这里我们只是用来&&组合它们。这git add .git commit -m "Changes Committed"单独运行和单独运行没有太大区别 。您可以同时运行多个命令,但这里的顺序很重要。如果您想将更改连同暂存和提交一起推送到远程服务器,您可以按照给定的方式进行,

git add . && git commit -m "Changes Committed" && git push origin master
Run Code Online (Sandbox Code Playgroud)

相反,如果您更改序列并将pushto 放在第一位,它将首先执行并且在暂存和提交后不会提供所需的推送,因为它已经首先运行。

&&当第一命令回来成功,或具有0的相对误差级上运行就行了第二命令&&就是||,其中,当所述第一命令不成功,或为1的误差水平上运行第二个命令。

或者,您可以创建alise asgit config --global alias.addcommit '!git add -a && git commit -m'并将其用作git addcommit -m "Added and commited new files"