Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git推送和分布式工作流_Git - Fatal编程技术网

git推送和分布式工作流

git推送和分布式工作流,git,Git,艾丽斯和鲍勃正在努力做同一个项目。以下是我们迄今为止所做的工作 鲍勃: 爱丽丝: 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 re

艾丽斯和鲍勃正在努力做同一个项目。以下是我们迄今为止所做的工作

鲍勃:

爱丽丝:

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
这就是我们被困的地方。推送成功了,但我不知道爱丽丝的承诺到哪里去了。当Bob从他的
master
分支键入
git log
时,找不到Alice的commit

我们是否以完全错误的方式处理分布式工作流?Alice和Bob应该如何在同一个分支上一起工作?请注意,我们没有中央位置来托管我们的回购协议,因此我们希望完全分布式工作

编辑:


我们将按照建议使用纯拉工作流。我们之所以没有在Bob的回购协议中发现bobsMaster分行,是因为我们假设它是在之前的一次拉动中出现的。谢谢你的回答

您将更改推送到
bobsMaster
,而不是
master
。因此,鲍勃必须合并

git checkout master
git merge bobsMaster

Bob应创建一个
bobsMaster
分支。如果要将bobsMaster推送到Bob的
master
分支,请使用以下命令:

git push bob bobsMaster:master
在您的工作流程中,Bob和Alice从其他人的回购中退出要好得多,因为不建议推进非裸回购。

关于“缺少提交”:


应该足以让您看到Alice的提交(因为它们是在与您的“
bobsMaster
”不同的分支“
bobsMaster
”中完成的)

提交被推送到
bob
存储库中名为
bobsMaster
的新远程分支(该分支是由
git push bob bobsMaster
创建的)

该命令中的最后一个参数指定远程refspec-如果在远程端找不到它,则正在创建它
bob
存储库只有一个分支(
master
),因此通过按
bobsMaster
,您可以在bob的repo中创建该分支


您应该使用
git push bob master
将更改推送到bob的主分支。

bob没有名为bobsMaster的分支。您是否建议bob将Alice添加为remote并从remote/Alice/bobsMaster合并?如果是这样,这是否意味着Alice的推送是不必要的?不,Alice将
bobsMaster
推送到Bobs存储库中,因此在那之后它就存在了。见查理的答案。他按下了
bobsMaster:master
,这意味着他将本地
bobsMaster
推到了远程
master
。如果省略远程分支名称,git将假定
bobsMaster
=>
bobsMaster:bobsMaster
git push bob bobsMaster:master
git log --branches