有什么方法可以同时使用这三个命令吗?
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填充之类的。不过,我必须编写所有三个命令来推动更改。有许多项目,我只是一个推动者,所以这个命令将是了不起的!
当前回答
上面的脚本有一些问题:
Shift“删除”参数$1,否则,“push”将读取它并“误解它”。
我的建议:
Git配置——全局别名。acpp”!git add -A && branchatu="$(git symbol -ref HEAD 2>/dev/null)"& & branchatu = $ {branchatu # # refs /头/} && git commit -m "$1" && shift && git pull -u origin $branchatu && git Push -u origin $branchatu'
其他回答
如果你使用VSCode,你可以下载这个扩展,它会让你在一个简单的键盘快捷方式。
在bash中设置为别名:
$ alias lazygit="git add .; git commit -a -m '...'; git push;";
叫它:
$ lazygit
(要使这个别名永久存在,你必须将它包含在你的.bashrc或.bash_profile中)
我认为你可能误解了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来使用。您可能会在本文末尾找到一些有用的参考资料。
在lazygit答案的基础上,下面的解决方案添加了一个用户检查,以在推送之前验证更改。如果取消,它将恢复命令。当且仅当本地回购发生变化时,所有这些都会发生。
### SAFER LAZY GIT
function lazygit() {
git add .
if git commit -a -m "$1"; then
read -r -p "Are you sure you want to push these changes? [y/N]} " response
case "$response" in
[yY][eE][sS]|[yY])
git push
;;
*)
git reset HEAD~1 --soft
echo "Reverted changes."
;;
esac
fi
}
当你想要类似svn的git提交行为时,在你的.gitconfig中的git别名中使用这个
Commit = "!f() {git Commit \"$@\" && git push;}; f”