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 从他的
git log
分支中输入 master
时,Alice 的提交无处可寻。我们是否以完全错误的方式处理分布式工作流? Alice 和 Bob 应该如何在同一个分支上一起工作?请注意,我们没有中央位置来托管我们的存储库,因此我们希望完全分布式地工作。
编辑:
我们将按照建议使用仅 pull 工作流程。我们没有在 Bob 的 repo 中发现 bobsMaster 分支的原因是因为我们假设它是从早先的 pull 中出现的。感谢您的回答!
最佳答案
Bob 应该创建了一个 bobsMaster
分支。如果要将 bobsMaster
推送到 Bob 的 master
分支,请使用以下命令:
git push bob bobsMaster:master
在您的工作流程中,Bob 和 Alice 从其他人的仓库中 pull 要好得多,因为不建议推送到非裸仓库。
关于git push 和分布式工作流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7767111/