- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 6 章 多⼈Git
我最初在⼀个私⼈项⽬上使⽤Git ,那⾥我是唯⼀的开发。在与Git分布式本性有关的
命 中,我只⽤到了 pull 和 clone,⽤以在不同地⽅保持同⼀个项⽬。
后来我想⽤Git发布我的代码,并且包括其他贡献者的变更。我不得不学习如何管理有
来 ⾃世界各地的多个开发的项⽬,幸运的是,这是Git的长处,也可以说是其存在的
理由。
我是谁?
Git在SSH , HTTP上
Git在随便什么上
补丁:全球货币
对不起,移⾛了
远端分⽀
多远端
我的喜好
我是谁?
每个提交都有⼀个作者姓名和电⼦信箱,这显⽰在 git log ⾥。默认, Git使⽤系统 设
定来填充这些域。要显⽰地设定,键⼊:
$ git config --global John Doe
$ git config --global user.email johndoe@
去掉global选项设定只对当前仓库⽣效。
Git在SSH, HTTP上
假设你有ssh访问权限,以访问⼀个⽹页服务器,但上⾯并没有安装Git 。尽管⽐着它
的 原⽣协议效率低,Git也是可以通过HTTP来进⾏通信的。
那么在你的帐户下,下载,编译并安装Git 。在你的⽹页⽬录⾥创建⼀个Git仓库:
$ GIT DIR=proj.git git init
$ cd proj.git
$ git --bare update-server-info
$ cp hooks/post-update.sample hooks/post-update
对较⽼版本的Git ,只拷贝还不够,你应运⾏:
$ chmod a+x hooks/post-update
现在你可以通过SSH从随便哪个克隆发布你的必威体育精装版版本:
$ git push web.server:/path/to/proj.git master
那随便谁都可以通过如下命 得到你的项⽬:
$ git clone http://web.server/proj.git
Git在随便什么上
想⽆需服务器,甚⾄⽆需⽹络连接的时候同步仓库?需要在紧急时期凑合⼀下?我们
已经看过git fast-export 和 git fast-import 可以转换资源 库到⼀个单⼀⽂件以及转回
来。 我们可以来来会会传送这些⽂件以传输git仓库, 通过任何媒介,但⼀个更有效
率的⼯具是 git bundle 。
发送者创建⼀个“⽂件包” :
$ git bundle create somefile HEAD
然后传输这个⽂件包, somefile ,给某个其他参与者:电⼦邮件,优盘,⼀
个 xxd 打印品和⼀个OCR扫描仪,通过电话读字节,狼烟,等等。接收者通过键⼊如
下命 从⽂件包获取提交:
$ git pull somefile
接收者甚⾄可以在⼀个空仓库做这个。不考虑⼤⼩, somefile 可以包含整个原先
git仓库。
在较⼤的项⽬⾥,可以通过只打包其他仓库缺少的变更消除浪费。例如,假设提交
‘` 1b6d …’是两个参与者共享的最近提交:
$ git bundle create somefile HEAD ^1b6d
如果做的频繁,⼈可能容易忘记刚发了哪个提交。帮助页⾯建议使⽤标签解决这个问
题。 即,在你发了⼀个⽂件包后,键⼊:
$ git tag -f lastbundle HEAD
并创建较新⽂件包,使⽤:
$ git bundle create newbundle HEAD ^lastbundle
补丁:全球货币
补丁是变更的⽂本形式,易于计算机理解,⼈也类似。补丁可以通吃。你可以给开发
电 邮⼀个补丁,不⽤管他们⽤的什么版本控制系统。只要你的观众可以读电⼦邮件,
他们 就能看到你的修改。类似,在你这边,你只需要⼀个电⼦邮件帐号:不必搭建⼀
个在线 的Git仓库。
回想⼀下第⼀章:
$ git diff 1b6d my .patch
输出是⼀个补丁,可以粘贴到电⼦邮件⾥⽤以讨论。在⼀个Git仓库,键⼊:
$ git apply my .patch
来打这个补丁。
在更正式些的设置⾥,当作者名字以及或许签名应该记录下的时候,为过去某⼀刻⽣
成 补丁,键⼊:
$ git format-patch 1b6d
结果⽂件可以给 git-send-email 发送,或者⼿⼯发送。你也可以指定⼀个提交范围:
$ git fo
文档评论(0)