现在,我已经使用本地git存储库与我的组的CVS存储库进行了几个月的交互.我已经制作了一个几乎神经质的分支,其中大部分幸运地合并回我的行李箱.但是命名开始成为一个问题.如果我有一个容易用简单标签命名的任务,但是我在三个阶段完成它,每个阶段都包含它们自己的分支和合并情况,那么我每次都可以重复分支名称,但这会使历史有点混乱.如果我在名称中有更具体的说明,并且每个阶段都有单独的描述,那么分支名称开始变得冗长而且难以处理.
我确实在这里学习通过旧线程查看我可以开始用名称中的/来命名分支,即主题/任务,或类似的东西.我可能会开始这样做,看看它是否有助于保持更好的组织.
命名git分支有哪些最佳实践?
编辑:实际上没有人建议任何命名约定.当我完成分支时,我会删除分支.由于管理层不断调整我的优先事项,我恰巧有几个人.:)作为为什么我可能需要在任务上需要多个分支的示例,假设我需要将任务中的第一个离散里程碑提交到组的CVS存储库.那时,由于我与CVS的不完美交互,我会执行该提交然后杀死该分支.(如果我在那时尝试继续使用相同的分支,我看到太多奇怪的事情与CVS交互.)
我很确定我在一个流行的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中创建分支?
我试图从github中提取更改时遇到一个奇怪的"无法锁定引用"错误.我已经尝试了git gc,并四处寻找类似的错误但无法找到解决方案.
> git pull
error: cannot lock ref 'refs/tags/v2.8': 'refs/tags' exists; cannot create 'refs/tags/v2.8'
From github.com:k3it/qsorder
! [new tag] v2.8 -> v2.8 (unable to update local ref)
error: cannot lock ref 'refs/tags/v2.9': 'refs/tags' exists; cannot create 'refs/tags/v2.9'
! [new tag] v2.9 -> v2.9 (unable to update local ref)
Run Code Online (Sandbox Code Playgroud) 每当我尝试使用上传我的文件时,git push -u origin main
我都会收到如下错误
error: src refspec main does not match any
error: failed to push some refs to 'github.com:xxxxxx/xxx-project.git'
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,git push -u origin master它就可以完美运行并将我的文件上传到名为master. 在检查 .git/refs/heads我的项目时,我看到只有一个命名的文件,master所以我执行了git remote update它添加.git/refs/remotes/origin/main但仍然git push -u origin main不起作用。
我试过git push origin HEAD:main但产生了错误:
! [rejected] HEAD -> main (non-fast-forward) error: failed to push some refs to 'github.com:xxxxxxx/xxx-project.git' hint: Updates were rejected because a pushed branch tip is behind …
完整的错误是:
远程:错误:无法锁定引用“refs/heads/fix/add_overlay”:引用已存在
我正在使用 SourceTree,但我认为这应该不重要。我一直尝试推送,但不断收到此错误,我该如何解决?
我使用带斜杠的分支有一段时间了,但突然发现在某些情况下无法创建它们
$ git init
Initialized empty Git repository in /home/dimskraft/tests/git-slash-branch/.git/
$ git checkout -b my-branch
Switched to a new branch 'my-branch'
$ git status
On branch my-branch
No commits yet
nothing to commit (create/copy files and use "git add" to track)
$ git checkout -b my-branch/sub-branch
Switched to a new branch 'my-branch/sub-branch'
$ touch myfile.txt
$ git add myfile.txt
$ git commit -m "added myfile.txt"
[my-branch/sub-branch (root-commit) 9be5cc5] added myfile.txt
...
$ git checkout -b my-branch/sub-branch/aaa
fatal: cannot lock ref …Run Code Online (Sandbox Code Playgroud) 我收到此错误:
Run Code Online (Sandbox Code Playgroud)fatal: cannot lock ref 'refs/heads/oleg/feature/1535693040/squashed':'refs/heads/oleg/feature/1535693040' 存在;无法创建 'refs/heads/oleg/feature/1535693040/squashed'
产生错误的脚本是:
current_branch="$(git rev-parse --abbrev-ref HEAD)"
git checkout -b "$current_branch/squashed"
git reset --soft "remotes/origin/dev";
git add .
git add -A
git commit -am "ores/gitflow auto-commit (squashed)"
git push
Run Code Online (Sandbox Code Playgroud)
有人知道那是什么吗?