gpt4 book ai didi

linux - 如何让git检查主服务器上的更新?

转载 作者:IT王子 更新时间:2023-10-29 01:06:12 24 4
gpt4 key购买 nike

我对 git 的了解很差,想寻求帮助。

我有一个 linux(-only)应用程序,只能用 git “下载”(即克隆)。在启动时,应用程序应询问 git“主服务器”(github) 是否有更新。

git 是否提供一个命令来检查是否有更新(没有真正更新 - 只是检查)?此外,我的应用可以读取该命令的返回值吗?

最佳答案

如果你不想 merge ,你可以直接git fetch yourremote/yourbranch,remote/branch 规范通常是origin/master。然后您可以解析命令的输出以查看是否确实存在新提交。您可以将最新获取的提交引用为 yourremote/yourbranch 或可能通过 symref FETCH_HEAD

注意:我被提醒,FETCH_HEAD 指的是最后一个获取的分支。因此,一般来说,您不能依赖 git fetch yourremoteFETCH_HEAD,因为前者会获取所有跟踪的分支,因此后者可能不会引用 yourbranch。此外,

  • 你最终获取了比绝对必要的更多的东西。
  • 另请参阅 Jefromi's answer查看但未实际下载的更改
  • 以下不一定是最紧凑的格式,只是可读的示例。

也就是说,这里有一些检查远程分支更新的选项,我们将用 yourremote/yourbranch 表示:

0. 处理以下操作中的错误:

0.1 如果您尝试git fetch yourremote,而git 给您一个错误

conq: repository does not exist.

这可能意味着您没有定义远程字符串。使用 git remote --verbose 检查您定义的远程字符串,然后根据需要 git remote add yourremote yourremoteURI

0.2 如果 git 给你这样的错误

fatal: ambiguous argument 'yourremote/yourbranch': unknown revision or path not in the working tree.

这可能意味着您在本地没有yourremote/yourbranch。我会把它留给更有知识的人来解释在本地拥有远程东西意味着什么 :-) 但在这里只会说你应该能够用

修复这个错误
git fetch yourremote

之后您应该能够成功地重复您想要的命令。 (假设您已正确定义 git remote yourremote:请参阅上一项。)

1. 如果需要详细信息,git show yourremote/yourbranch 与当前的git show yourbranch进行比较

2. 如果您只想查看差异,git diff yourbranch yourremote/yourbranch

3. 如果您更喜欢只对散列进行比较,请比较 git rev-parse yourremote/yourbranchgit rev-parse yourbranch

4. 如果您想使用日志回溯发生的事情,您可以执行类似 git log --pretty=oneline yourremote/yourbranch...yourbranch (注意使用三个点)。

关于linux - 如何让git检查主服务器上的更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7696533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com