- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
考虑以下存储库。它有很多团队成员的私有(private)分支,都在 refs/heads/team/
命名空间下,我不想获取,但我仍然想获取所有其余部分,包括任何可能是在 team
命名空间之外新创建的分支。
$ git ls-remote http://gerrit.asterisk.org/asterisk refs/heads/* | wc -l
217
$ git ls-remote http://gerrit.asterisk.org/asterisk refs/heads/* | grep -v refs/heads/team/ | wc -l
32
我正在获取 fetch = +refs/heads/*:refs/remotes/golden/*
,但这些私有(private)分支只是压倒了我的 refs/remote/golden
命名空间,使其更难概览,并且还需要更多空间用于本地存储库。
是否可以获取 refs/heads/*
,但排除 refs/heads/team/*
?
最佳答案
很遗憾,没有。
幸运的是,您可以任意接近,特别是如果您愿意每次都使用两次提取,或者一次提取然后删除一次(这实际上可能更有效,或者至少更省时;它可能需要更多空间,具体取决于有多少对象最终变得无用)。
本质上,这里的想法是通过首先运行 git ls-remote
然后进行您自己的过滤并重写 fetch =
条目来列出要获取的所有内容(好吧,条目)对于 Remote :
git ls-remote "$remote" 'refs/heads/*' |
(git config --unset-all "remote.$remote.fetch";
while read hash ref; do
case $ref in refs/heads/team/*) continue;; esac
rmtref="refs/remotes/$remote/${ref#refs/heads/}"
git config --add "remote.$remote.fetch" "+$ref:$rmtref"
done)
git fetch "$remote"
(添加一些前端工作以适本地设置 $remote
)。使这项工作成功的关键是 git 组 merge 遵守 所有 fetch =
行。
对于另一个想法,运行一个正常的 (+refs/heads/*:refs/remotes/...
) fetch 然后是一系列 git update-ref -d refs/remotes/$remote/${ref#refs/heads/}
用于匹配不需要的形式的引用。如果您愿意,可以在之后加入 git gc
(或 git repack
和/或 prune)以缩小存储库。
关于git - 忽略 git refspec 中的单个命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36788421/
根据git config的文档,支持以下两项: remote..fetch The default set of "refspec" for git-fetch(1). See git-fet
我一直在关注 this guide关于配置 GitLab 与 Jenkins 的持续集成。 作为流程的一部分,需要按如下方式设置 refspec:+refs/heads/*:refs/remotes/
我在 eclipse 中有一个基于 java 的动态 web 项目,它被放置在 git 下进行源代码控制。我想将这个项目上传到 bitbucket 中的存储库中。为此,我使用了命令下面- git re
查看this示例显示 refspecs 可以过滤目录/命名空间,如下所示: +refs/heads/qa/*:refs/remotes/origin/qa/* 但是我正在尝试优化提取,而我正在使用的
嗨,我想推送一些东西到特定的远程分支 我制作局部区域 git clone https://~~~.Something cd https://~~~.Something 我可以使用访问特定的分支 git
我在 GitHub 上创建了一个 repo。从网站创建了一个新分支(名为“anythingslider”)。 然后: cd /home/multiformeingegno git clone git@
我镜像了一个 git 存储库并删除了 application.properties包含来自 MyProject 的密码存储库。我可以看到 Deleted files 下的消息和我的文件名如下: $ j
考虑以下存储库。它有很多团队成员的私有(private)分支,都在 refs/heads/team/ 命名空间下,我不想获取,但我仍然想获取所有其余部分,包括任何可能是在 team 命名空间之外新创建
我正忙着整合 Jenkins 和 TFS。我第一次不成功的尝试是使用 Jenkins 的多分支管道设置和 TFS。因此,我的第二次尝试是使用带有参数的单个 Jenkins 构建来指定要构建的分支。 我
在当前的 Git 上,git push --force-with-lease origin +somebranch 和 git push --force-with-lease origin someb
我和几个 friend 在 GitLab 有个项目,当然有 master 分支,还有一些其他的。当我克隆存储库时,我还使用命令 git remote add upstream ... 创建了一个上游。
我在 cloufforge 上设置了一个新的 Git 存储库,但遇到了一些不寻常的问题。 When I do a git pull origin master From https://dndigit
如何通过单个命令获取有关 gerrit 更改的最新 refspec。我需要输出为“refs/changes/11/1234/4”。是否有相同的 git 命令 我知道结合 gerrit 查询和一些脚本的
Refspec 和 Branch specifier(默认为空) 有什么区别:在下面的 Jenkins 作业配置中: 我尝试在作业配置中设置 Refspec 选项: +refs/heads/maste
我从主分支创建了一个功能分支,并向我的分支添加并提交了一些更改。 现在我想把我的工作推送到远程仓库,但是失败了。我能做些什么来解决这个问题?谢谢。 当运行 git push 命令时,它没有询问我的密码
看来很多人已经用 git init && git fetch 组合替换了 git clone。这看起来相当愚蠢,不幸的是像 Jenkins 这样的工具不会为你做这件事。那么,为什么 git clone
这个问题在这里已经有了答案: Message 'src refspec master does not match any' when pushing commits in Git (128 个答案
使用 refspec 是一种获取远程分支并创建类似但具有给定名称的分支的便捷方法(或者反过来:创建一个具有与本地名称不同的给定名称的远程分支)。我对一件小事感到困惑——因为 pull 也会与当前分支
我已经使用我的 GitHub 帐户在 https://github.com/darKoram/sphero_tracker.git .到目前为止,它只包含一些 wiki 页面,但我已准备好上传我的代码
这个问题在这里已经有了答案: Message 'src refspec master does not match any' when pushing commits in Git (126 个答案
我是一名优秀的程序员,十分优秀!