有没有办法将这三个命令合并成一个?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有时我只需要更改一个字母,例如CSS内边距等。但是,我仍然需要编写所有三个命令才能推送更改。在许多项目中,我是唯一的推动者,因此这个命令非常棒!
有没有办法将这三个命令合并成一个?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有时我只需要更改一个字母,例如CSS内边距等。但是,我仍然需要编写所有三个命令才能推送更改。在许多项目中,我是唯一的推动者,因此这个命令非常棒!
基于 @Gavin 的回答:
将 lazygit 改为函数而不是别名可以让你传递参数。我已经将以下内容添加到我的 .bashrc (如果是Mac,则为 .bash_profile):
function lazygit() {
git add .
git commit -a -m "$1"
git push
}
这使您能够提供提交信息,例如lazygit "My commit msg"
当然,您可以通过接受更多的参数来进一步增强此功能,例如要推送到哪个远程位置或者哪个分支。
$*
代替$1
,这样就不需要打引号了:lazygit My commit msg
。 - Kai Carverfunction dirtygit() { git add . git commit -a -m "$*" git push }
- OnklMaps我最终在我的.gitconfig
文件中添加了一个别名:
[alias]
cmp = "!f() { git add -A && git commit -m \"$@\" && git push; }; f"
用法:git cmp"长提交消息在此处"
添加所有文件,然后使用注释作为提交消息并将其推送到 origin。
我认为这是更好的解决方案,因为您可以控制提交消息。
该别名还可以从命令行定义,这会将其添加到您的.gitconfig
中:
git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f'
!f() { ... }; f
具体是做什么的?对这行代码的更深入解释将使答案更好。 - Dmitry Gamolinf
,然后调用它。 - Oliver虽然我同意韦恩·沃纳对此持怀疑态度,但从技术上讲,这是一种选择:
git config alias.acp '! git commit -a -m "commit" && git push'
这定义了一个别名,以运行commit
和push
。您可以使用git acp
来调用它。请注意,这种“shell”别名始终在您的git存储库根目录下运行。
另一个选择是编写一个后提交钩子来进行推送。
哦,顺便说一下,您确实可以将参数传递给shell别名。如果您想传递自定义提交消息,则可以使用:
git config alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'
当然,现在你需要给出一个提交信息:git acp "我的信息在这里!"
git
会自动添加转义字符(使用 git config -e
进行检查)。 - Tilman Vogel我在我的.bash_profile中使用这个
gitpush() {
git add .
git commit -m "$*"
git push
}
alias gp=gitpush
它执行起来像
gp A really long commit message
别忘了在保存别名后运行source ~/.bash_profile
。
gp
,因为它会与 Oh-My-Zsh 的 git 插件冲突,该插件使用 gp
来执行 git push
。 - deb我认为你可能误解了git的设计流程。(澄清/更正我的评论,你不需要使用git add .
,因为commit -a
通常具有相同的目的——添加任何尚未暂存的更改,如果文件已经被添加)
通常情况下,你会执行以下操作:
# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"
洗涤,冲洗,重复,直到你完成了X功能,或者你到了一个停止点,或者你只是想让其他人看到你所做的。然后你就可以
$ git push
Git和SVN不同,但是看起来你正在尝试将其用作SVN。您可能会发现本文末尾的一些资源here对您有所帮助。
你可以使用bash脚本,设置别名来启动任何命令或一组命令。
git commit -am "your message" && git push
git commit -a -m "commit" && git push
git add
已经包含在提交的 -a 参数中,但如果需要,您可以将它们全部连接起来:
git add . && git commit -a -m "commit" && git push
git pull &
作为第一步添加进去,这样很棒。 - IcedDantegit add
不包括在-a
选项中,尤其是对于未跟踪的文件:*-a, --all
告诉命令自动暂存已修改和已删除的文件,但未告知git的新文件不受影响。 - undefined在bash中设置别名:
$ alias lazygit="git add .; git commit -a -m '...'; git push;";
称之为:
$ lazygit
要使此别名永久生效,您需要将其包含在您的.bashrc或.bash_profile文件中。
git commit -am "IssueNumberIAmWorkingOn --hit Enter key
> A detail here --Enter
> Another detail here --Enter
> Third line here" && git push --last Enter and it will be there
如果您正在本地创建新的分支,将git push
替换为git push -u origin branch_name
如果您想在系统编辑器中编辑提交消息,则
git commit -a && git push
点击打开编辑器,编辑并保存消息后会自动推送。
npm install -g git-upload
gitu COMMIT_MSG
同时执行这三个命令。
好消息是,当您重新安装系统或想在不同的计算机上进行此操作时,无需担心任何文件修改。这也可以在不同的平台上使用(不仅限于Linux和Mac,还包括Windows下的命令提示符,如cmd
和powershell
),只需要安装npm
和nodejs
(当然还有git
)即可。