我需要处理一组复杂的仓库配置。我有五个仓库:
- 机器1上的远程中央仓库。
- 我笔记本电脑(机器2)上的本地仓库。
- 机器3上的裸仓库。
- 机器3上的仓库。
- 我们进行代码审查的机器4上的仓库。
因此,我理解它是这样工作的:
- 在我的笔记本电脑(机器2)上,我从位于机器1上的中央仓库克隆/拉取。
- 我将本地仓库推送到机器3(使用裸仓库作为“中间件”)。
现在我在机器3上进行了一些更改,并且我想将这些更改推送到机器4。以下是我需要按照的说明:
- 在机器3上,在您的测试分支中完成所有工作,提交。
- 将其推送到机器3上的裸仓库:git push origin test-branch
- 在您的笔记本电脑上:从machine-3仓库获取新的提交:git fetch machine3
- 从机器3检出您的分支:git checkout -b test-branch machine-3/test-branch
- 从machine-4获取提交:git fetch origin
- git rebase origin/master
- git push origin HEAD:refs/for/master
我在第4步遇到问题,我收到以下错误:
fatal: 'machine3/test-branch' 不是提交,分支无法从它创建
附加
当我执行:
git rev-parse machine3/test-branch
在我的笔记本电脑(机器2)上,我得到了以下结果:
machine3/test-branch
fatal: ambiguous argument 'machine3/test-branch': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
git checkout -b test-branch machine-3/test-branch
需要一个工作树,所以它会失败。此外,您需要检查machine3/test-branch
是否存在。https://mijingo.com/blog/what-is-the-working-tree-in-git - ElpieKaygit rev-parse machine3/test-branch
输出什么? - ElpieKay