我有什么办法吗
git add -A
git commit -m "commit message"
在一个命令中?
我似乎经常做这两个命令,如果Git有像git commit -Am "commit message"
这样的选项,它会让生活变得更方便。
git commit
具有-a
修饰符,但它与提交前执行git add -A
的操作完全不同。 git add -A
添加了新创建的文件,但git commit -am
没有。是什么?
答案 0 :(得分:349)
您可以使用git别名,例如
git config --global alias.add-commit '!git add -A && git commit'
并将其与
一起使用git add-commit -m 'My commit message'
编辑:恢复为ticks('),否则在Linux上进行shell扩展会失败。 在Windows上,应该使用双引号(“)(在评论中指出,但未验证)。
答案 1 :(得分:216)
git commit -a -m "message"
是告诉git删除已删除文件的简单方法,但我通常不建议这样的全部工作流程。 git提交在最佳实践中应该是相当原子的,只会影响一些文件。
git add .
git commit -m "message"
是添加新文件或修改过的所有文件的简便方法。此外,上述全能资格适用。不会删除没有git rm
命令删除的文件。
git add app
git commit -m "message"
是一种从单个目录将所有文件添加到索引的简单方法,在本例中为app dir。
答案 2 :(得分:47)
要将其保存在一行中使用:
git add . && git commit -am "comment"
此行将添加所有已更改和已添加的文件并将其提交到存储库。
答案 3 :(得分:18)
只需合并命令:
git add -A && git commit -m "comment"
答案 4 :(得分:17)
仅针对 linux bash 调整Ales's答案和courtsimas's评论:
要将其保存在一行中使用:
git commit -am "comment"
此行将添加并提交所有已更改到存储库。
确保git尚未提取新文件。否则你需要使用:
git add . ; git commit -am "message"
答案 5 :(得分:13)
最简单的方法是:
git commit -am "Your commit message"
我不明白我们为什么要这么做。
答案 6 :(得分:13)
在更高版本的git中,您可以像这样添加和提交
git commit -a -m "commit message"
另外你有一个别名:
[alias]
ac = commit -a -m
然后你可以像这样使用它:
git ac "commit message"
答案 7 :(得分:11)
非常确定你可以使用:
git commit -am "commit all the things"
答案 8 :(得分:8)
在我的Windows机器上,我设置了这个.bashrc
别名,以使整个过程更加简单。
.bashrc
- refer SO thread 将以下行添加到文件
alias gacp='echo "enter commit message : " && read MSG && git add . && git commit -m "$MSG" && git push'
它确实添加了提交和推送。以任何方式调整它,假设您不希望push命令删除该部分
重新加载.bashrc
/关闭并重新打开您的shell
gacp
命令完成整个过程。答案 9 :(得分:5)
只需使用:
git commit -m "message" .
注意“。”最后...也可以是文件/目录的路径
答案 10 :(得分:4)
我在.bash_profile
或.profile
或.zprofile
或在登录shell中获取的任何内容中都有此功能:
function gac () {
# Usage: gac [files] [message]
# gac (git add commit) stages files specified by the first argument
# and commits the changes with a message specified by the second argument.
# Using quotes one can add multiple files at once: gac "file1 file2" "Message".
git add $1 && git commit -m "$2"
}
答案 11 :(得分:4)
如果输入:
git config --global alias.a '!git add -A && git commit -m'
一次,您只需输入
即可git a
每次:
git a 'your comment'
答案 12 :(得分:4)
我做了一个shell
#!/bin/sh
clear
git add -A
git commit -a -m "'$*'"
保存例如git.sh以及稍后调用:
sh git.sh your commit message
答案 13 :(得分:2)
您可以使用-a
git commit -h
...
Commit contents options
-a, -all commit all changed files
...
git commit -a # It will add all files and also will open your default text editor.
答案 14 :(得分:1)
我使用 add all和commit 的以下别名:
git config --global alias.ac '!git add -A && git commit -a'
然后,输入:
git ac
我得到一个vim窗口,可以为我的提交消息获取更多编辑工具。
答案 15 :(得分:1)
我使用以下内容(两者都在进行中,因此我会尝试记住更新此内容):
# Add All and Commit
aac = !echo "Enter commit message:" && read MSG && echo "" && echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"$MSG\" && echo "" && echo "New status:" && echo "===========" && git status
# Add All and Commit with bumpted Version number
aacv = !echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"Bumped to version $(head -n 1 VERSION)\" && echo "" && echo "New status:" && echo "===========" && git status
echo "Enter commit message:" && read MSG
部分受到Sojan V Jose的启发
我很乐意在那里收到if else
声明,所以我可以告诉我是否要在部署完成后进行部署,如果我输入&#,请为我执行此操作39; y',但我想我应该把它放在我的.zshrc
文件中
答案 16 :(得分:1)
在bash中创建别名:
alias gac="git add -A && git commit -m"
(我选择将快捷方式称为“ gac”,但您不必这样做)
使用它:gac 'your commit message here'
答案 17 :(得分:1)
对于习惯于Subversion之类的人群中的白银背...在旧词的意义上进行“提交”(即-或用git语言-添加,提交和推送) ),通常我会在我的项目的根目录中添加以下内容(作为Windows中的bat文件,例如git-commit.bat)。然后,当我要添加,提交和推送时,只需键入类似git-commit "Added some new stuff"
的内容,然后所有内容都将发送到远程仓库。
此外,这样,项目中的任何人都可以使用相同的内容,而不必在本地进行任何更改。
我通常也运行一次git config credential.helper store
,所以运行时不需要输入uid / pwd。
::
:: add, commit, and push to git
::
@echo off
echo.
echo.
echo
echo Doing commit...
git add -A && git commit -m %1
echo.
echo.
echo Doing push...
git push
echo.
echo.
echo Done.
echo.
答案 18 :(得分:1)
这始终对我有用,请运行以下命令:
1.git add .
2.git commit -m "no bugs please"
3.git push origin *
其中*是基于您要推送到的分支的,而且提交消息始终可以根据上下文进行更改。
答案 19 :(得分:0)
答案 20 :(得分:0)
首先检查您拥有什么别名...
git config --get-regexp alias
如果不存在,则可以创建自己的(参考:https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases)
// git add
git config --global alias.a '!git add -A'
// git commit
git config --global alias.c '!git commit'
// git commit -m
git config --global alias.cm '!git commit -m'
// git add commit
git config --global alias.ac '!git add -A && git commit'
// git add commit -m
git config --global alias.acm '!git add -A && git commit -m'
例如,如果您使用的是最后一个...
git acm 'My commit'
答案 21 :(得分:0)
万一有人想为一个文件“添加并提交”,我就是这样,我创建了下面的脚本来做到这一点:
#!/bin/bash
function usage {
echo "Usage: $(basename $0) <filename> <commit_message>"
}
function die {
declare MSG="$@"
echo -e "$0: Error: $MSG">&2
exit 1
}
(( "$#" == 2 )) || die "Wrong arguments.\n\n$(usage)"
FILE=$1
COMMIT_MESSAGE=$2
[ -f $FILE ] || die "File $FILE does not exist"
echo -n adding $FILE to git...
git add $FILE || die "git add $FILE has failed."
echo done
echo "commiting $file to git..."
git commit -m "$COMMIT_MESSAGE" || die "git commit has failed."
exit 0
我将其命名为“ gitfile.sh”,并将其添加到我的$ PATH中。然后,我可以在一个命令中为单个文件运行git add和commit:
gitfile.sh /path/to/file "MY COMMIT MESSAGE"
答案 22 :(得分:0)
我希望这对某人有帮助,请随时进行编辑或改进。我不确定最快的方式是什么,但是通过为Git使用“ ohmyzsh” ,无疑可以简化我的代码提交过程。
git add .
缩短为ga .
git commit -m "message"
缩短为gc -m "message"
git push
缩短为gp
答案 23 :(得分:0)
有人说 git commit -am
可以解决问题。这将不起作用,因为它只能提交对跟踪文件的更改,但不会添加新文件。 Source。
经过一些研究,我认为没有这样的命令可以执行此操作,但您可以根据您的操作系统在 .bashrc
或 .bash_profile
上编写脚本。
我将分享我使用的:
function gac {
if [[ $# -eq 0 ]]
then git add . && git commit
else
git add . && git commit -m "$*"
fi
}
这样,您的所有更改都将被添加和提交,您只需输入 gac
,系统就会提示您编写提交消息
或者你可以直接输入你的提交信息gac Hello world
,你的所有更改都会被添加并且你的提交信息将是Hello world,注意""
没有被使用< /p>
答案 24 :(得分:-1)
git add . && git commit -am
并输入history
并输入543
!543 "your comment here"
,即
感叹号+数字和空格以及你的评论。答案 25 :(得分:-1)
This Result -尝试以下操作:一个简单的脚本命令,用于git add,git commit和git push
在Windows上打开您的CMD并粘贴答案
git commit -m "your message" . && git push origin master
这个例子我的图片截图: https://i.stack.imgur.com/2IZDe.jpg
答案 26 :(得分:-3)
要将其保存在一行中使用:
gacm "your comment"