第 3 章 克隆周边.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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访问怎么

文档评论(0)

ayangjiayu4 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档