【问题标题】:"Git pull" on server after every "git push" from local machine [duplicate]从本地机器每次“git push”后服务器上的“Git pull”[重复]
【发布时间】:2023-04-07 12:16:01
【问题描述】:

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

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

然后在服务器上:

git pull

就是这样。

每次我在本地机器上进行更改时,我都会这样做。 在我看来,我可以以某种方式对其进行优化,但我还没有找到任何 git 命令来处理这个问题。

有没有办法在每次有变化时不打印git pull? 也许有办法自动add && commit && push

【问题讨论】:

  • 听起来你想要一个备份系统,而不是 VCS。
  • git pull 在你的服务器上?和你的 git 服务器一样吗?
  • @axiac 你觉得怎么样? - 他正在努力优化他的工作流程。
  • @Xatenev "...自动add && commit && push..."
  • 为什么不推送服务器呢?

标签: git


【解决方案1】:

是的,这是正常行为:您在本地推送并在服务器上拉取。

要自动执行拉取操作,您需要某种 continueos 集成工具,例如

http://capistranorb.com/https://jenkins.io/

在使用github的特殊情况下,参考这个问题/答案:How do you do an automatic git pull on remote server?

是的,您可以添加 git 别名,为您执行添加提交和推送所有内容https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases

【讨论】:

  • 感谢 git 别名。似乎比添加 bash 命令更好。
  • 评分太低,无法评分:)
【解决方案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)。

【讨论】:

  • 谢谢!这并不能解决问题,但我现在打印的更少,并且快速学会了如何创建自定义命令:)
  • 我很高兴能帮助你:) 顺便说一句:不要使用很棒的高级自动化工具,但我认为你是初学者,你可以在你的服务器上为 git pull 创建一个 cron 作业。 stackoverflow.com/questions/4414140/git-auto-pull-using-cronjob 等待进一步的问题! :)
  • 使用脚本 while true do cd dir/ && git pull && cd - sleep 5 done 和 nohup 完成
【解决方案3】:

如果您使用的是 GitHub,则可以使用他们的 Webhooks 功能来监听push 事件并做相应的事情。

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

chimneypot 等工具允许您编写小脚本来处理这些事件。

【讨论】:

    【解决方案4】:

    假设您真正想要的是在 git push 之后进行部署,网上有很多关于此的文章。

    git pull 如果某些文件已在远程更改,则可能会在远程失败。您需要一个 post-update git hook 来触发一个脚本,该脚本使用例如 rsync 来进行实际部署,并且钩子的性质负责在每次推送时实现它。

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2014-05-02
      • 2019-07-30
      • 2015-12-26
      • 2021-02-26
      • 2021-10-13
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多