git 功能的活学活用及探讨[来源:网上转载 (http://bbs.chinaunix.net) | 作者:网友(platinum) | 时间:2007-09-20 | 浏览:79 人次 ] 我先放一个教程上来
我不太 了解
$ git-fetch origin (1)
$ git-rebase origin (2)
$ git-format-patch origin (3)
的功能,Yuri.G. 进来指导一下
2007-9-19 21:59
下载次数: 4
git教程.htm.bz2 (15.86 KB)
指导不敢,我也之只是略懂皮毛,分享一下吧.
据我的了解
git-fetch是抓取外部版本库的.
以下是一段引用
QUOTE:$ git-fetch <remote-repository>
根据不同的远程版本库所 使用的通讯协议的路径来替代上面的 remoted-repository 就可以了。
Rsync
rsync://remote.machine/patch/to/repo.git/
SSH
remote.machine:/path/to/repo.git
or
ssh://remote.machine/patch/to/repo.git/
这是可以上传和下载的双向传输协议,当然,你要有通过 ssh 协议登录远程机器的权限。它可以找出两端的机器提交过的对象集之中相互缺少了那些对象,从而得到需要传输的最小对象集。这是最高效地交换两个版本库之间的对象的方式(在 git 兼容的所有传输协议当中)。
下面是个取得 SSH 远程版本库的命令例子:
$ git-fetch
[email protected]:/path/to/gittutorcn.git (1)
(1) 这里 robin 是登录的用户名,192.168.1.168 是保存着主版本库的机器的 IP 地址。
Local directory
/path/to/repo.git/
本地目录的情况和 SSH 情况是一样的。
git Native
git://remote.machine/path/to/repo.git/
git 自然协议是设计来用于匿名下载的,它的工作方式类似于 SSH 协议的交换方式。
HTTP(S)
http://remote.machine/path/to/repo.git/
到这里可能有些 朋友已经想到,实际上,我们可以通过 Rsync, SSH 之类的双向传输方式来建立类似 CVS,SVN 这样的中心版本库模式的开发组织形式。
git-reset是逆转和恢复.就是版本回退.
QUOTE:逆转与恢复:git-reset
项目跟踪工具的一个重要任务之一,就是使我们能够随时逆转(Undo)和恢复(Redo)某一阶段的工作。
git-reset 命令就是为这样的任务准备的。它将当前的工作分支的 头 定位到以前提交的任何版本中,它有三个重置的算法选项。
命令形式:
git-reset [--mixed | --soft | --hard] [<commit-ish>]
命令的选项:
--mixed
仅是重置索引的位置,而不改变你的工作树中的任何东西(即,文件中的所有变化都会被保留,也不标记他们为待提交状态),并且提示什么内容还没有被更新了。这个是默认的选项。
--soft
既 不触动索引的位置,也不改变工作树中的任何内容,我们只是要求这些内容成为一份好的内容(之后才成为真正的提交内容)。这个选项使你可以将已经提交的东西 重新逆转至“已更新但未提交(Updated but not Check in)”的状态。就像已经执行过 git-update-index 命令,但是还没有执行 git-commit 命令一样。
--hard
将工作树中的内容和头索引都切换至指定的版本位置中,也就是说自 <commit-ish> 之后的所有的跟踪内容和工作树中的内容都会全部丢失。因此,这个选项要慎用,除非你已经非常确定你的确不想再看到那些东西了
git-format-patch 似乎也只是生成email 形式的补丁用于发给上游的维护者.
QUOTE:原帖由
platinum 于 2007-9-19 21:59 发表
我先放一个教程上来
我不太了解
$ git-fetch origin (1)
$ git-rebase origin (2)
$ git-format-patch origin (3)
的功能,Yuri.G. 进来指导一下
这个HTML是用什么写的?格式很好,我需要一个这样的工具.
哦,不是 git-reset,是 git-rebase
HTML 我不清楚,我是在网络上 找到的
Sorry看快了.
http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html
这个我也没怎么用过,大概估计跟应用补丁差不多.
下面有一个能表达意思的图
[Copy to clipboard] [ - ]CODE: A---B---C topic
/
D---E---F---G master
From this point, the result of either of the following commands:
git-rebase master
git-rebase master topicwould be:
A'--B'--C' topic
/
D---E---F---G master
The latter form is just a short-hand of git checkout topic followed by git rebase master.
中文资料不太多,英文的看上去又很累很抽象,有具体需求时再研究吧……