现在,我已经使用本地git存储库与我的组的CVS存储库进行了几个月的交互.我已经制作了一个几乎神经质的分支,其中大部分幸运地合并回我的行李箱.但是命名开始成为一个问题.如果我有一个容易用简单标签命名的任务,但是我在三个阶段完成它,每个阶段都包含它们自己的分支和合并情况,那么我每次都可以重复分支名称,但这会使历史有点混乱.如果我在名称中有更具体的说明,并且每个阶段都有单独的描述,那么分支名称开始变得冗长而且难以处理.
我确实在这里学习通过旧线程查看我可以开始用名称中的/来命名分支,即主题/任务,或类似的东西.我可能会开始这样做,看看它是否有助于保持更好的组织.
命名git分支有哪些最佳实践?
编辑:实际上没有人建议任何命名约定.当我完成分支时,我会删除分支.由于管理层不断调整我的优先事项,我恰巧有几个人.:)作为为什么我可能需要在任务上需要多个分支的示例,假设我需要将任务中的第一个离散里程碑提交到组的CVS存储库.那时,由于我与CVS的不完美交互,我会执行该提交然后杀死该分支.(如果我在那时尝试继续使用相同的分支,我看到太多奇怪的事情与CVS交互.)
我想获取远程存储库的单个分支(不是所有分支),并创建一个本地跟踪分支,可以跟踪对该远程分支的进一步更新.远程存储库中的其他分支非常大,所以我想避免获取它们.我该怎么做呢?
编辑:我自己想出来了,但StackOverflow拒绝让我提供答案作为答案,所以我会把它放在问题中.
你使用-t选项来git远程添加,例如:
git remote add -t remote-branch remote-name remote-url
Run Code Online (Sandbox Code Playgroud)
您可以使用多个" -t branch"选项来获取多个分支.
我很确定我在一个流行的Git项目中看到某个地方的分支有一个像"feature/xyz"这样的模式.
但是当我尝试使用斜杠字符创建一个分支时,我收到一个错误:
$ git branch labs/feature
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory
Run Code Online (Sandbox Code Playgroud)
同样的问题(我最初的尝试):
$ git checkout -b labs/feature
Run Code Online (Sandbox Code Playgroud)
如何使用斜杠字符在Git中创建分支?
考虑以下存储库。它有很多团队成员的私有分支,都在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
Run Code Online (Sandbox Code Playgroud)
我正在获取fetch = +refs/heads/*:refs/remotes/golden/*,但这些私有分支只是压垮了我的refs/remote/golden命名空间,使其更难以概览,并且还需要更多空间用于本地存储库。
是否可以获取refs/heads/*但排除refs/heads/team/*?