首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新裸露的克隆人

刷新裸露的克隆人
EN

Stack Overflow用户
提问于 2011-09-18 06:15:58
回答 3查看 843关注 0票数 1

我正在使用usb存储上的git裸回购作为不同位置之间工作的传输机制。我通过以下操作启动了usb存储:

git克隆--裸/路径/到/克隆

问题是如何在不删除旧克隆和执行新克隆的情况下刷新克隆(即获得新克隆的等效结果)。

仅仅执行git-fetch是不够的,原因如下:

  1. git-fetch不提取新分支(
  2. ),如果源进行重基或提交-amend,则usb-克隆仍将包含旧的提交。

第一个问题可以通过以下脚本解决:

代码语言:javascript
复制
git fetch --prune origin -- \
  `git ls-remote -h origin | while read sha ref; do echo "+$ref:$ref"; done`

(见:http://git.661346.n2.nabble.com/How-to-fetch-all-remote-branches-from-remote-td3380849.html)

但如何解决第二个问题呢?如何擦除遥控器上不再存在的提交?

EN

回答 3

Stack Overflow用户

发布于 2011-09-18 06:32:20

git gc将清理任何不可访问的提交。

看起来您正在usb挂载目录中运行命令。如果是这样的话,那么我建议你采取另一种方法。使用工作目录中的git push更新usb存储库,并在将其移动到另一台计算机时使用git pull。这将确保usb存储库上的所有内容都是最新的。不要在usb挂载目录中运行任何东西。

顺便说一句,git fetch应该引入新的分支。如果不是,那就有别的地方不对劲了。

票数 1
EN

Stack Overflow用户

发布于 2012-05-22 13:47:34

与其使用--bare开关进行克隆,不如使用--mirror开关。

然后git fetch将完成这项工作。

Discussed here

票数 1
EN

Stack Overflow用户

发布于 2011-09-18 06:31:30

git fetch确实会获取新的分支。

将工作/主回购中的git push作为一种替代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7459820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档