git push 和分布式工作流

标签 git

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/

相关文章:

git - 为远程指定 git 分支

git - 为什么 git 在 'git add' 命令之间生成新的 blob?

git - Gerrit 尝试配置简单的 rebase

git 写入和读取访问权限,无需成为服务器用户

ios - git:致命:克隆私有(private) Cocoapod 时无法从远程存储库读取

git - 推荐多平台、便携、学习模式的 Git GUI?

git - 无法添加空文件夹

git - 将许多子目录分离到一个新的、独立的 Git 存储库中

git - 控制 Go 包版本

git - 通过子模块显示 Git 中的外部代码依赖性