Bea*_*sen 8 git branch tracking
我正在尝试维护一个Git存储库的裸副本,并且有一些问题使远程跟踪分支保持最新.我创建这样的远程跟踪分支:
git branch -t 0.1 origin/0.1
Run Code Online (Sandbox Code Playgroud)
这似乎做了我需要做的事情.但是,如果我进行更改origin然后使用裸仓库获取,事情就会开始崩溃.我的工作流程如下:
git fetch origin
Run Code Online (Sandbox Code Playgroud)
看起来所有的提交都在那时进行,但我的本地副本0.1没有更新.我可以通过执行以下操作看到更改已进入存储库:
git diff 0.1 refs/remotes/origin/0.1
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能使用远程更新更新我的跟踪分支?我觉得我必须在某个地方错过一步或一面旗帜.
更新:附加说明
通常情况下,人们会进入裸存储库,而不是从内部运行git fetch.如果你可以安排这样做,生活会更容易.
以下是对工作流程的一些澄清.
该项目的公共git存储库托管在GitHub上.我正在使用Redmine管理项目(维基,问题,论坛).Redmine需要一个本地裸存储库才能运行.当GitHub收到更改时,它会ping Redmine.Redmine然后尝试从其原点(GitHub)获取更改.
如果我只是与master合作但是它不能与我的跟踪分支机构合作,那么这很有用.这些更改正在导入,但未在Redmine存储库浏览器的分支中列出,因为本地分支未进行更新.
我确信我可以通过另一种方式解决这个问题,但是找到(通用)解决方案来启动和运行跟踪分支绝对是我的偏好,因为Redmine的大多数git相关插件都假设"git fetch origin"之类的东西都是这需要做.
请参阅已接受的答案以获取完整的解 该--mirror解决方案似乎正是需要在这种情况下.
Mar*_*air 17
通常情况下,人们会进入裸存储库,而不是git fetch从内部运行.如果你可以安排这样做,生活会更容易.
如果您必须获取而不是推送,并且您只想在裸存储库中创建源镜像,则可以避免完全使用远程跟踪分支.如果你从头开始这个镜像, Charles Bailey在下面指出,如果你最初克隆存储库,那么git将为你做所有这些设置git clone --mirror.
否则,您可以获得类似的效果:
git fetch origin +refs/heads/*:refs/heads/*
Run Code Online (Sandbox Code Playgroud)
这+意味着这将覆盖来自远程分支的本地分支的状态.如果没有+,那么非快进合并的更新将被拒绝.但是,如果这只是一面镜子,那应该不重要.(您可以在配置这是默认的动作git fetch origin通过设置配置变量remote.origin.fetch来+refs/heads/*:refs/heads/*.如果你想从镜像来源标签和远程跟踪分支,以及,你可以使用+refs/*:refs/*来代替.)
但是,如果您最初要求维护远程跟踪分支并有选择地将它们合并到本地分支中,则可以使用以下步骤,但我不一定会推荐它们,除非您是唯一使用此分支的人库. (注意:最初在这里我建议使用"git symbolic-ref HEAD refs/heads/whatever"切换分支和"git reset --soft"来改变分支参考 - 但是,Charles Bailey在评论中指出一个人可以使用"git update-ref refs/heads/whatever refs/remotes/origin/whatever",这不需要先切换分支.)
首先,您可能想要检查更新分支是否是快进合并,然后更新分支.请注意,这里存在竞争条件,这就是为什么我说如果你是唯一一个使用本地裸存储库的人,你应该这样做 - 如果其他人在这些步骤之间的分支上移动,那么检查将毫无用处.
origin/master包括master)通过比较git merge-base master origin/master与git show-ref master-他们应该是相同的.或者您可以is-ancestor在此问题中使用该脚本,该脚本通过一些额外的检查来执行这些命令.)master在这种情况下)为指向origin/master与git update-ref refs/heads/master refs/remotes/origin/master但是,正如我在开始时所说,我想你想要的真正解决方案是:
我希望有一些用处.
| 归档时间: |
|
| 查看次数: |
6551 次 |
| 最近记录: |