我正在使用usb存储上的git裸回购作为不同位置之间工作的传输机制。我通过以下操作启动了usb存储:
git克隆--裸/路径/到/克隆
问题是如何在不删除旧克隆和执行新克隆的情况下刷新克隆(即获得新克隆的等效结果)。
仅仅执行git-fetch是不够的,原因如下:
第一个问题可以通过以下脚本解决:
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)
但如何解决第二个问题呢?如何擦除遥控器上不再存在的提交?
发布于 2011-09-18 06:32:20
git gc将清理任何不可访问的提交。
看起来您正在usb挂载目录中运行命令。如果是这样的话,那么我建议你采取另一种方法。使用工作目录中的git push更新usb存储库,并在将其移动到另一台计算机时使用git pull。这将确保usb存储库上的所有内容都是最新的。不要在usb挂载目录中运行任何东西。
顺便说一句,git fetch应该引入新的分支。如果不是,那就有别的地方不对劲了。
发布于 2012-05-22 13:47:34
发布于 2011-09-18 06:31:30
git fetch确实会获取新的分支。
将工作/主回购中的git push作为一种替代。
https://stackoverflow.com/questions/7459820
复制相似问题