Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 repo和分支。假设它不允许基于internet的解决方案使用Git服务器实例或端口 学生可以克隆单个分支并在本地提交,但不能将更改推送到共享目录,因为它是只读的 老师能否报告一些如何收集/合并来自各自学生的更改?您可以在本地将更改提交给您的分支机构。然后从他们的主分支执行拉取请求。如果您有权直接推送到他们的分公司,您将 使用git推送 然后提供您的凭证用户名和密码您可以在本地将更改提交给分支机构。然后从他们

这是一个我无法摆脱的假想情况

在学校中,教师在共享只读目录中为每个学生创建一个主git repo和分支。假设它不允许基于internet的解决方案使用Git服务器实例或端口

学生可以克隆单个分支并在本地提交,但不能将更改推送到共享目录,因为它是只读的


老师能否报告一些如何收集/合并来自各自学生的更改?

您可以在本地将更改提交给您的分支机构。然后从他们的主分支执行拉取请求。如果您有权直接推送到他们的分公司,您将 使用git推送
然后提供您的凭证用户名和密码

您可以在本地将更改提交给分支机构。然后从他们的主分支执行拉取请求。如果您有权直接推送到他们的分公司,您将 使用git推送
然后提供您的凭证用户名和密码是的,这是可能的,有多种方法可以做到:

Git具有Git format patch命令,该命令能够根据针对某些现有提交所做的工作准备一个或一系列补丁

因此,第一个明显的想法是让学生根据他们的更改生成补丁集,并通过电子邮件发送给他们的老师。然后,教师使用gitam将更改合并到相应的分支中

如果由于某种原因而不方便,您最初已经标记了问题窗口;我已删除此标记-例如,教师和/或学生没有足够的经验正确使用电子邮件客户端,或者只能访问损坏的电子邮件客户端,如Microsoft®Outlook™, — 您可以使用git包

git bundle能够生成一个特殊格式的归档文件,其中包含指定的历史数据。很容易告诉git bundle仅导出针对教师最初提供的历史数据所做的工作,然后使用任何方便的方式交付此文件:使用闪存驱动器,通过电子邮件发送,上传到FTP或共享文件夹等

然后,教师可以从学生提供的bundle中获取git fetch或git pull,以更新初始分支

请注意,除非您部署一些前端软件(如gitolite),否则不可能让学生只能访问他们的个人分支进行克隆

还要注意的是,无服务器Git工作流并没有什么不寻常之处:比如说,Git开发过程依赖于提交通常由Git格式补丁准备的补丁,或者Git向Git主邮件列表发送电子邮件,在那里讨论这些补丁——直接评论包含补丁的消息,-并应用从开发人员邮件阅读器保存的修补程序,和


此外,即使不使用电子邮件,也不需要服务器:如果开发人员Joe和Mary可以(比如)通过SSH访问对方的邮箱,他们可能直接访问对方的repo。中央服务器上的中央回购只是一个有用的概念,但主要是一种社交活动,而非技术性活动。

是的,这是可能的,实现这一点的方法不止一种:

Git具有Git format patch命令,该命令能够根据针对某些现有提交所做的工作准备一个或一系列补丁

因此,第一个明显的想法是让学生根据他们的更改生成补丁集,并通过电子邮件发送给他们的老师。然后,教师使用gitam将更改合并到相应的分支中

如果由于某种原因而不方便,您最初已经标记了问题窗口;我已删除此标记-例如,教师和/或学生没有足够的经验正确使用电子邮件客户端,或者只能访问损坏的电子邮件客户端,如Microsoft®Outlook™, — 您可以使用git包

git bundle能够生成一个特殊格式的归档文件,其中包含指定的历史数据。很容易告诉git bundle仅导出针对教师最初提供的历史数据所做的工作,然后使用任何方便的方式交付此文件:使用闪存驱动器,通过电子邮件发送,上传到FTP或共享文件夹等

然后,教师可以从学生提供的bundle中获取git fetch或git pull,以更新初始分支

请注意,除非您部署一些前端软件(如gitolite),否则不可能让学生只能访问他们的个人分支进行克隆

还要注意的是,无服务器Git工作流并没有什么不寻常之处:比如说,Git开发过程依赖于提交通常由Git格式补丁准备的补丁,或者Git向Git主邮件列表发送电子邮件,在那里讨论这些补丁——直接评论包含补丁的消息,-并应用从开发人员邮件阅读器保存的修补程序,A. 钕


此外,即使不使用电子邮件,也不需要服务器:如果开发人员Joe和Mary可以(比如)通过SSH访问对方的邮箱,他们可能直接访问对方的repo。中央服务器上的中央repo只是一个有用的概念,但主要是一种社交活动,而不是技术性的活动。

如果教师可以通过网络访问学生的repo,则可以。老师需要为每个学生设置一个遥控器,然后取回并合并他们的分支

理想情况下,学生应该有他们的本地repo,在本地提交,然后在网络上的一个裸存储库中发布和推送他们的作品。然后,他们可以通知老师,他们的工作是在指定分支机构的公共回购协议中完成的。老师可以取树枝,如果作品有价值,就把它合并起来

github就是这样工作的,有人拥有一个项目教师,人们可以在他们的机器上复制它,在他们的github帐户上,在一个分支上工作,然后当他们希望所有者接受他们的更改时,他们将更改从他们的机器推送到github上的fork,所有者可以查看分支,例如通过获取并可能将其合并到自己的回购协议中


如果教师无法直接访问学生的本地repo,学生必须推送到某个地方,在DVCS中,他们通常在网络上自己的裸克隆中这样做。

如果教师可以在网络上访问学生的repo,则可以。老师需要为每个学生设置一个遥控器,然后取回并合并他们的分支

理想情况下,学生应该有他们的本地repo,在本地提交,然后在网络上的一个裸存储库中发布和推送他们的作品。然后,他们可以通知老师,他们的工作是在指定分支机构的公共回购协议中完成的。老师可以取树枝,如果作品有价值,就把它合并起来

github就是这样工作的,有人拥有一个项目教师,人们可以在他们的机器上复制它,在他们的github帐户上,在一个分支上工作,然后当他们希望所有者接受他们的更改时,他们将更改从他们的机器推送到github上的fork,所有者可以查看分支,例如通过获取并可能将其合并到自己的回购协议中


如果老师无法直接访问学生的本地回购,学生必须推送到某个地方,在DVCS中,他们通常在网络上自己的裸克隆中这样做。

为什么不允许推送?对我来说,这似乎是最好的解决办法。学生们有一个讨厌的习惯,就是为了好玩而删除东西。我想,如果git push能够以某种方式限制他们对分支的权力,那么它可能是可行的。但它仍然是只读驱动器。为什么不允许推送?对我来说,这似乎是最好的解决办法。学生们有一个讨厌的习惯,就是为了好玩而删除东西。我想,如果git push能够以某种方式限制他们对分支的权力,那么它可能是可行的。但它仍然是一个只读驱动器。感谢您对裸回购的澄清,但最好的解决方案可能是一个补丁文件—一个没有任何专家会轻易理解为zip的概念。感谢您对裸回购的澄清,但是,最好的解决办法可能是使用补丁文件,这一概念没有一个专家会轻易理解为zip。