首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git拉不上锁裁判,永久解决?

Git拉不上锁裁判,永久解决?
EN

Stack Overflow用户
提问于 2021-04-22 10:14:43
回答 1查看 56关注 0票数 0

我正在处理一个巨大的存储库,我们总共有900人正在处理这个问题,为每个特性/bug/hotfix(让我们称之为“自定义分支”)创建一个新分支,并且在成功测试并将其合并到主线分支( total : 5)之后删除该分支,这将导致类似unable to lock local ref这样的错误。

我们的存储库结构采用以下格式进行暂存:

代码语言:javascript
复制
mainline-level-1
                 -> mainline-level-2
                                    -> mainline-level-3
                                                       -> mainline-level-4
                                                                          -> mainline-level-5

组织中的每个人都面临git拉的问题,显示一些与相关的错误,无法锁定本地ref.,我们可以使用git remote prune origingit gc --prune=nowgit pull origin mainline-level-1等方便的命令来解决这个问题,但对于我们正在执行git的服务器来说,这是一个漫长的过程,由于某些原因,在服务器上运行这些命令(包括自动化命令)是不可能的。

所以,我从盒子里出来,看看我们能不能删除这些错误。因为我们没有签出服务器端的任何自定义分支,所以我们所需要的只是在那里的主线分支。

我尝试添加git配置,只获取存储库的主线分支。因此,添加配置更改后,本地存储库的git配置如下所示:

代码语言:javascript
复制
[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)

  • Is
  1. 建议使用这样的配置吗?
  2. 会在存储库中创建更多问题吗?(解决这两种配置都可能有一个本地配置(对于开发人员),这样我们就不会面临这个问题了。
  3. 可以配置git以这样的方式复制它吗?注意:目前,我正在按照流程来实现存储库上的预期状态:initialize empty repo->add a remote->add config changes->do the git pull
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-23 00:33:45

  1. 推荐吗?我不知道:这似乎取决于谁在做recommendations.

  1. 会制造更多的问题吗?不,但也解决不了这些问题。

  1. 有可能有这样的配置吗?是的,当然,你已经证明了这一点。--

  1. ,您能配置git clone来完成这个任务吗?不准确地说,不:git clone --single-branch接近了,在这样做之后,您可以使用git remote set-branches --add来添加剩下的四个分支,这样就可以不使用单个分支克隆,而是有一个五个分支克隆。

不过,你最好的选择是找出你的系统为什么要这么做。这通常是在单个存储库上运行多个并行git fetch操作的标志(不要这样做!)

听起来好像有多个用户共享一个Git存储库,他们试图在其中工作。别干那事!Git存储库对于每个开发人员来说都是私有的。

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

https://stackoverflow.com/questions/67211267

复制
相关文章

相似问题

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