- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 3 章 克隆周边
第 3 章 克隆周边
在较⽼⼀代的版本控制系统⾥,checkout是获取⽂件的标准操作。你将获得⼀组特定
保 状态的⽂件。
在Git和其他分布式版本控制系统⾥,克隆是标准的操作。通过创建整个仓库的克隆来
获得⽂件。或者说,你实际上把整个中⼼服务器做了个镜像。凡是主仓库上能做的
事, 你都能做。
计算机间同步
典型源码控制
封闭源码
裸仓库
推还是拽
项⽬分叉
终极备份
轻快多任务
游击版本控制
Mercurial
Bazaar
我偏爱Git的原因
计算机间同步
我可以忍受制作tar包或利⽤rsync来作备份和基本同步。但我有时在我笔记本上编辑,
其他时间在台式机上,⽽且这俩之间也许并不交互。
在⼀个机器上初始化⼀个Git仓库并提交你的⽂件。然后转到另⼀台机器上:
$ git clone puter:/path/to/files
以创建这些⽂件和Git仓库的第⼆个拷贝。从现在开始,
$ git commit -a
$ git pull puter:/path/to/files HEAD
将把另⼀台机器上特定状态的⽂件“拉”到你正⼯作的机器上。如果你最近对同⼀个⽂
件做了有冲突的修改,Git将通知你,⽽你也应该在解决冲突之后再次提交。
典型源码控制
为你的⽂件初始化Git仓库:
$ git init
$ git add .
$ git commit -m Initial commit
在中⼼服务器,在某个⽬录初始化⼀个“裸仓库” :
$ mkdir proj.git
$ cd proj.git
$ git init -- are
$ touch proj.git/git-daemon-export-ok
如需要的话,启动Git守护进程:
$ git daemon --detach # 它也许已经在运⾏了
对⼀些Git伺服服务,按照其指导来初始化空Git仓库。⼀般是在⽹页上填⼀个表单。
把你的项⽬“推”到中⼼服务器: $ git push central .server/path/to/proj .git HEA
捡出源码,可以键⼊:
$ git clone central.server/path/to/proj.git
做了改动之后,开发保 变更到本地:
$ git commit -a
更新到最近版本:
$ git pull
所有冲突应被处理,然后提交:
$ git commit -a
把本地改动捡⼊到中⼼仓库:
$ git push
如果主服务器由于其他开发的活动,有了新的变更,这个捡⼊会失败,该开发应该把
最 新版本拿下来,解决合并冲突,然后重试。
为使⽤上⾯pull和push命令,开发必须有SSH访问权限。不过,通过键⼊以下命令,任
何 ⼈都可以看到源码:
$ git clone git://central.server/path/to/proj.git
本地git协议和HTTP类似:并⽆安全验证,因此任何⼈都能拿到项⽬。因此,默认情
况 git协议禁⽌推操作。
封闭源码
闭源项⽬不要执⾏touch命令,并确保你从未创建git-daemon-export-ok⽂件。资
源库 不再可以通过git协议获取;只有那些有SSH访问权限的⼈才能看到。如果你所有
的资源 库都是封闭的,那也没必要运⾏运⾏git守护了,因为所有沟通都⾛SSH 。
裸仓库
之所以叫裸仓库是因为其没有⼯作⽬录;它只包含正常情况下隐藏在.git⼦⽬录下
的⽂件。换句话说,它维护项⽬历史,⽽且从不保 任何给定版本的快照。
裸仓库扮演的⾓⾊和中⼼版本控制系统中中⼼服务器的⾓⾊类似:你项⽬的中⼼。开
发从其中克隆项⽬,捡⼊新近改动。典型地裸仓库 在⼀个服务器上,该服务器除了
分散数据外并不做啥。开发活动发⽣在克隆上,因此中⼼仓库没有⼯作⽬录也⾏。
很多Git命令在裸仓库上失败,除⾮指定仓库路径到环境变量GIT_DIR,或者指定 --
are选项。
推还是拽
为什么我们介绍了push命令,⽽不是依赖熟悉的pull命令?⾸先,在裸仓库上pull会 失
败:除⾮你必须“fetch” ,⼀个之后我们要讨论的命令。但即使我们在中⼼服务器上 保
持⼀个正常的仓库,拽些东西进去仍然很繁琐。我们不得不登陆服务器先,给pull 命
令我们要拽⾃机器的⽹络地址。防⽕墙会阻碍,并且⾸先如果我们没有到服务器的
shell访问怎么
您可能关注的文档
最近下载
- 糖尿病的康复医学课件.ppt VIP
- 2025二 《在庆祝中国共产党成立100周年大会上的讲话》(教学设计)【中职专用】高一语文同步精品课堂(高教版2023·基础模块下册)(同课异构).docx VIP
- 2025年湖南省长沙市小升初入学分班考试数学试卷解析版.pdf
- 肾动脉狭窄的诊断和处理中国专家共识解读PPT课件.pptx VIP
- 2024年甘肃财贸职业学院招聘事业编制工作人员真题.docx VIP
- 人教版小学六年级数学上册教案全册 (最全).doc VIP
- 2023贵州教师招聘考试试题及答案.docx VIP
- 《跨文化交际》第七章 跨文化的人际交往 PPT课件.pptx
- 2025年海南省中考英语试题卷(含答案解析).docx
- 《亲爱的汉修先生》阅读练习及答案.docx VIP
文档评论(0)