- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我对 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 yourremote
和 FETCH_HEAD
,因为前者会获取所有跟踪的分支,因此后者可能不会引用 yourbranch
。此外,
也就是说,这里有一些检查远程分支更新的选项,我们将用 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/yourbranch
和 git rev-parse yourbranch
4. 如果您想使用日志回溯发生的事情,您可以执行类似 git log --pretty=oneline yourremote/yourbranch...yourbranch
(注意使用三个点)。
关于linux - 如何让git检查主服务器上的更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7696533/
我是一名优秀的程序员,十分优秀!