Alice 和 Bob 正在尝试处理同一个项目。这是我们到目前为止所做的。
鲍勃:
mkdir myproject
cd myproject
echo "Hello" > readme.txt
git init
git add readme.txt
git commit -m "Initial Commit"
爱丽丝:
git init
git remote add bob ssh://bob/home/bob/projects/myproject
git pull bob
git checkout remote/bob/master -b bobsMaster
echo "Hello again" >> readme.txt
git add readme.txt
git commit -m "Improving readme"
git push bob bobsMaster
现在这就是我们被困的地方。推送成功,但我不知道 Alice 的提交去了哪里。当 Bob 从他的 master
分支输入 git log
时,找不到 Alice 的提交。
我们是否以完全错误的方式处理分布式工作流? Alice 和 Bob 应该如何在同一个分支上一起工作?请注意,我们没有中央位置来托管我们的存储库,因此我们希望完全分布式地工作。
编辑:
我们将按照建议采用仅 pull 式工作流程。我们没有在 Bob 的存储库中发现 bobsMaster 分支的原因是因为我们假设它是从较早的 pull 中出现的。感谢您的回答!
最佳答案
Bob 应该创建一个 bobsMaster
分支。如果你想将 bobsMaster
推送到 Bob 的 master
分支,使用这个:
git push bob bobsMaster:master
在您的工作流程中,Bob 和 Alice 从其他人的 repo 中提取数据要好得多,因为不建议推送到非裸 repo 。
关于git push 和分布式工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767111/