我是git(和GitHub)的新手,看到很多错误(在GitHub上)通过克隆存储库得以修复,并且克隆仅在修复的生命周期内临时存在,之后被关闭并删除。
该技术如何应用于大型项目,而这些项目的编译时间可能要花费数小时?例如,Perforce中的一种方法是拥有一个主分支和一个单独的分支,并在其中合并各个错误修正。 git / GitHub也使用这种技术吗?似乎没有错,但是我不确定还有其他我没想到的技术和方法。
答案 0 :(得分:3)
通过克隆存储库进行修复,并且克隆仅在修复的生命周期内临时存在,然后关闭并删除。
关闭并删除,因为PullRequest分支已合并到原始回购(上游)主分支中。
由于这些是已合并历史记录的源代码,因此无需进行任何修复即可将fix分支保留在fork中。
我分叉分支,编译项目,修复错误,将其集成到主分支中,并为该错误克隆我的分支
您无需“分叉您的分支机构”:只需创建并签出本地分支机构,将其推送到您的仓库即可,您可以提出拉取请求以掌握其他分支机构进行审查。
如果您是该仓库中唯一的仓库管理人员,那么您甚至都不需要:创建本地分支,修复错误,并在测试了它的工作原理之后,合并到master并推送。
只有一个克隆,您可以checkout multiple branches in different folders, with git worktree
。
答案 1 :(得分:1)
当您在Github上创建公共存储库时,其他人可以查看/下载它,但不能为它做贡献。人们通常会在应付开源存储库时分叉。这为您提供了一个隔离的环境,具有编写和创建分支的特权。您分支以修复错误(通常是错误)。您可以只依靠大师,但是在团队中工作时会出现问题。您可能需要进行一系列提交才能解决问题,从而使master分支处于损坏状态。为了避免这种错误,功能或功能是在master分支上固定/构建的,直到它们处于健康状态才能被合并。
GIT的内部没有为每个分支创建项目的完整副本(它们为分支创建)。分支仅跟踪变化的线的差异。如果您的代码大小为1MB,并且您分支了5次且没有任何更改,则它仍为1MB。莱纳斯·托瓦尔兹(Linus Torvalds)用图论做了一些伏都教,使他在制作GIT时可以做到这一点。
总结整个过程很复杂。 github文档对于学习git概念https://try.github.io/
来说非常出色