本地机器"git push"后,服务器需要进行"git pull"。

8

我对git的使用非常简单。基本上在我的本地机器上,我会做这样的事情:

echo 'Update' >> README.md
git add . && git commit -m 'update' && git push -u origin master

然后在服务器上执行:
git pull

就是这样。

每次在本地机器上进行更改时,我都要这样做。 我觉得我可以优化一下,但我没有找到任何与此有关的git命令。

有没有办法不每次都打印git pull? 也许有一种方法可以自动add && commit && push


听起来你需要一个备份系统,而不是版本控制系统。 - axiac
在你的服务器上执行 git pull 命令?这个服务器和你的 git 服务器是同一个吗? - Simon PA
@axiac,你觉得这个听起来怎么样?- 他试图优化自己的工作流程。 - Xatenev
@Xatenev "...自动add && commit && push..." - axiac
为什么不在服务器上推送呢? - MayeulC
4个回答

3

感谢 Git 别名。它似乎比添加 Bash 命令更好。 - Snobby
评分太低,无法评价 :) - Snobby

2

第二件事情,您可以创建一个脚本。
例如,创建一个文件:

sudo nano /usr/local/bin/git-update

粘贴:

git add . && git commit -m 'update' && git push -u origin master`

然后执行。
sudo chmod +x /usr/local/bin/git-update

并使用您的新命令 (git-update)。


1
谢谢!这并没有解决问题,但现在我可以少打印点东西了,而且还快速学会了如何创建自定义命令:) - Snobby
我很高兴能帮到你 :) 顺便说一下:虽然高级自动化工具非常好用,但我认为你是初学者,可以在你的服务器上创建一个cron job来进行git pull。https://dev59.com/O2855IYBdhLWcg3wUSgW期待更多问题! :) - Oskar Laska
使用脚本 while true do cd dir/ && git pull && cd - sleep 5 done 和 nohup 完成了任务。 - Snobby

1
假设你真正想要的是在 git push 后部署,网上有很多相关内容。如果远程已更改某些文件,则 git pull 可能会失败。你需要一个 post-update git hook,触发一个脚本来利用例如 rsync 进行实际部署,hook 的性质会在每次 push 时自动执行。

0
如果您正在使用GitHub,可以使用其Webhooks功能来监听push事件并相应地执行操作。

https://developer.github.com/webhooks/

有一些工具,比如烟囱罐,可以让你编写小脚本,在这些事件上执行特定的操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接