我需要使用复杂的存储库配置。我有 5 个:
- 机器 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 起源/主
- git push origin HEAD:refs/for/master
第 4 步有问题。我收到以下错误:
fatal: 'machine3/test-branch' is not a commit and a branch 'test-branch' cannot be created from it
添加
当我执行
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>...]'