[英]git add remote tracking branch to bare repo
例如,如果我有foo.org和bar.org,那么我的裸仓库有drupal的分支+一个名为foo,一个名为bar。
我的想法是,我可以充分利用git的硬链接来节省本地克隆的磁盘空间。 我以为我会保留从git.drupal.org获取的裸仓库,并将更改下载到我的本地副本,foo和bar。 然后,当更新出现时很容易。
bare-repo$ git fetch >/dev/null ; git branch -a
* 7.x
foo
bar
remotes/origin/7.x
remotes/origin/8.x
foo和bar从分支7.x开始,但我想将它们更新为7.8,例如通过git rebase 7.8
但是这会失败:
fatal: Needed a single revision
invalid upstream 7.8
foo和bar不能'看到'裸机壳的遥控器。 我能做什么?
你需要一个工作文件夹来进行rebase。 所以你需要克隆这个仓库,然后做你需要的。 之后,将修改后的分支推回到裸仓库。
或者,您可以指定工作目录git --work-tree=../somedir rebase 7.8
。 遗憾的是,git命令的worktree和git dir选项并未完全针对所有命令实现。 第一种选择是最好的。
Rebase需要一个工作目录,因为它需要在遇到冲突时让你控制。 然后,您可以修复冲突并发出git rebase --continue
命令,让它在新基础上应用其余的提交。
希望这可以帮助。
2点,如“ git rebase fatal:Needed a single revision ”中所述:
origin/7.8
,而不是7.8
: git rebase origin/7.8
应该管用。
git rebase origin/7.8
fatal: Needed a single revision invalid upstream origin/7.8
我回答说:
如果原点中没有7.8
作为分支,则会出现此错误消息。
也许7.8
是 ' origin
'回购中的标签 。
在这种情况下, 您需要首先显式获取所述标记 :
git fetch --tags origin
然后rebase应该工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.