我正在处理一个巨大的存储库,我们总共有900人正在处理这个问题,为每个特性/bug/hotfix(让我们称之为“自定义分支”)创建一个新分支,并且在成功测试并将其合并到主线分支( total : 5)之后删除该分支,这将导致类似unable to lock local ref这样的错误。
我们的存储库结构采用以下格式进行暂存:
mainline-level-1
-> mainline-level-2
-> mainline-level-3
-> mainline-level-4
-> mainline-level-5组织中的每个人都面临git拉的问题,显示一些与相关的错误,无法锁定本地ref.,我们可以使用git remote prune origin或git gc --prune=now或git pull origin mainline-level-1等方便的命令来解决这个问题,但对于我们正在执行git的服务器来说,这是一个漫长的过程,由于某些原因,在服务器上运行这些命令(包括自动化命令)是不可能的。
所以,我从盒子里出来,看看我们能不能删除这些错误。因为我们没有签出服务器端的任何自定义分支,所以我们所需要的只是在那里的主线分支。
我尝试添加git配置,只获取存储库的主线分支。因此,添加配置更改后,本地存储库的git配置如下所示:
[foo]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@bitbucket.org:gods/foo.git
fetch = +refs/heads/mainline-level-1:refs/remotes/origin/mainline-level-1
fetch = +refs/heads/mainline-level-2:refs/remotes/origin/mainline-level-2
fetch = +refs/heads/mainline-level-3:refs/remotes/origin/mainline-level-3
fetch = +refs/heads/mainline-level-4:refs/remotes/origin/mainline-level-4
fetch = +refs/heads/mainline-level-5:refs/remotes/origin/mainline-level-5
[branch "mainline-level-1"]
remote = origin
merge = refs/heads/mainline-level-1,让我们回到这里的问题,
local/remote)
initialize empty repo->add a remote->add config changes->do the git pull发布于 2021-04-23 00:33:45
git clone来完成这个任务吗?不准确地说,不:git clone --single-branch接近了,在这样做之后,您可以使用git remote set-branches --add来添加剩下的四个分支,这样就可以不使用单个分支克隆,而是有一个五个分支克隆。不过,你最好的选择是找出你的系统为什么要这么做。这通常是在单个存储库上运行多个并行git fetch操作的标志(不要这样做!)
听起来好像有多个用户共享一个Git存储库,他们试图在其中工作。别干那事!Git存储库对于每个开发人员来说都是私有的。
https://stackoverflow.com/questions/67211267
复制相似问题