【问题标题】:What local file changes when pushing?推送时哪些本地文件发生了变化?
【发布时间】:2020-11-25 00:11:33
【问题描述】:

.git 中是否有一个(或多个)本地文件始终在 100% 确定地更改,当且仅当推送被推送到远程分支并被远程分支接受时?

也就是说,有没有办法添加post-push git hook?


我可以给某些东西起别名,

alias git-push="git push && ./deliver.sh"

但这意味着我必须在我的开发工作流程的根循环中记住一些额外的 curly-cue/stutter 步骤。经过数天/数周/数月后,保证我在输入git push && ./deliver.sh 时认知努力更少,但击键次数更多。它会变得更快吗?没有。

在视频游戏术语中,这是与云的自动同步。为什么我的视频游戏工作流程与我的提交工作流程不同?我要求我的视频游戏流畅,但不是在我大部分时间都花在的领域? ——但足够的动力。应该有一种简单(且可移植)的方法来做到这一点。

【问题讨论】:

  • 您要解决什么实际问题? (这似乎是XY problem。)
  • @torek 我想在推送到 master 时触发我的部署逻辑。但是我需要可以查看的与本地提交无关的文件,以便在提交时进行部署......但再想一想,我可能可以通过为 git-push 命令设置别名来完成此操作。
  • 这能回答你的问题吗? Execute a script after every git push
  • 我很确定这个问题至少有一个副本,但我找不到它。
  • @DaemonPainter 然而,如果你试图解决这个问题,让它在一个可以舒适使用 8 小时而不会出错的炊具意义上变得轻松而稳定,它实际上是一个问题。我可以给某些东西起别名,但这意味着我必须在我的开发工作流程的根循环中记住一些额外的 curly-cue/stutter 步骤。

标签: git


【解决方案1】:

没有一个文件可以提供任何此类保证。

你可以接近。如果您的 Git 有一个 remote-tracking name 用于某个分支名称,并且您使用 git push 的方式要求他们的 Git 更新该分支名称,并且他们接受此特定更新,则存储的值在您的远程跟踪名称中将更新以匹配。

但是,当您得到答案时,它可能已经过时了。假设您让他们更新分支xyzzy,并且您的远程跟踪信息告诉您,在您开始之前,它是提交a123456。您的推送要求他们将其更改为存储哈希 ID b789abc。你使用git rev-parse origin/xyzzy 查询你的Git,看看里面有什么,现在是b789abc。所以你的推送请求,要求他们将他们的xyzzy 更改为b789abc,是成功的。但他们现在可能已经有 c012345 了,因为在你的后面安排了第三方推送。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多