如何使用git签出指定版本的Webkit?

如何使用git签出指定版本的Webkit?,git,Git,多谢各位。从链接中,使用git签出Webkit有以下3个步骤 我需要更改哪个步骤来指定正确版本的Webkit for chromium 多谢各位 git clone git://git.webkit.org/WebKit.git WebKit cd WebKit git svn init -T trunk http://svn.webkit.org/repository/webkit git update-ref refs/remotes/trunk origin/master git svn

多谢各位。从链接中,使用git签出Webkit有以下3个步骤

我需要更改哪个步骤来指定正确版本的Webkit for chromium

多谢各位

git clone git://git.webkit.org/WebKit.git WebKit
cd WebKit
git svn init -T trunk http://svn.webkit.org/repository/webkit
git update-ref refs/remotes/trunk origin/master
git svn fetch

在我看来,您不必同时跟踪Subversion存储库,因此,如果您真正感兴趣的是从过去获得某个版本的WebKit,那么这就可以做到:

git clone git://git.webkit.org/WebKit.git WebKit
cd WebKit
git checkout <tag>
git克隆git://git.webkit.org/WebKit.git 网络工具包
cd网络工具包
git签出

其中
是应用于您关心的版本的标记。我无法告诉您想要什么版本,但您可以使用
git-tag
获得标签列表。如果其中一个版本与您想要的版本不匹配,请找出您想要的修订版本的SHA1哈希,并指定该哈希,而不是标记名。

在Chromium树中,您将找到一个名为
DEPS
的文件。该文件的第4行将指定该树的WebKit版本

请注意,Chromium每天滚动WebKit(周末除外)。

git获取来源
git签出
git pull--tags#从远程回购中提取所有标签
git checkout#从远程回购中检出该标记
这将从git repo中取出标记,然后将该标记签出到您的工作副本中。当然,这是假设gitrepo有这些标记或分支来获取和签出

如果git repo没有这些标记,那么必须使用git svn命令来完成

$ REF=$(git svn find-rev r<revision>) git checkout $REF
$ git checkout -b <branchname> # if you want to create  branch from this commit
$ git tag <tagname> # if you want to create a tag from this commit
$REF=$(git svn find rev r)git checkout$REF
$git checkout-b#如果要从此提交创建分支
$git tag#如果要从此提交创建标记

git svn find rev
查找指定svn版本的git commit ref。

谢谢。因此,我想保持更新Webkit(通过git svn),因为Chromium会更新其对特定Web视图的依赖关系。那么,如果我按照“史蒂夫·马德森”的建议去做,我会再做一次“git结帐”吗?基本上,我想保留Webkit更改的历史记录和我在本地所做的更改/历史记录git://git.webkit.org/WebKit.git WebKit-cd-WebKit”,但我没有用“git-tag”得到任何东西。然后我添加了“git svn init-T trunk git update ref refs/remotes/trunk origin/master git svn fetch”,但我仍然没有得到任何关于我做的git标记的信息。但我看到一堆r47649=a3cf5d9ebe3db905422842de2c126096391f69f9 r47650=8660BD7D03ECCA29203E449E7AECF3C86C5FC995R47651=AC463B98F72507B90CE3647B08B00A29C4CABAAAF r47652=5EFB72568A776E5FB16BDD11851CC6E5885 r47653=1B2F26B353931271F19637DD492013E349E1AI应该注意,只有在跟踪了上面的SVGIT方法时才有效svn回购。谢谢。我照你的建议做了REF=$(git svn find rev r)git checkout$REF$git checkout-b,然后,我做了一个“git svn rebase”(我试图同步svn存储库的主干,但在我执行“git svn rebase”之前,我忘记了执行“get checkout-b master”。现在我得到了这个消息:git checkout master已经在“master”上了您的分支比“origin/master”提前146次提交。我在git svn存储库中没有做任何更改,为什么我说我提前146次提交。我该怎么做修复它?谢谢。任何时候重新设置基址都会重写git存储库的历史记录。很可能是您从历史记录中挤压或删除了提交,这样存储库历史记录就不再像远程历史记录,git会感到困惑。重新设置基址只应用于修改您所做但未发布的提交的历史记录。如果没有,则执行重新设置基址在一个特定的分支上可能有一些非常奇怪的行为,我不知道。当你签出一个提交版本时,你不在分支上,也不在master上。git rebase可能在你签出提交之后删除了所有提交。但这只是一个猜测。
$ REF=$(git svn find-rev r<revision>) git checkout $REF
$ git checkout -b <branchname> # if you want to create  branch from this commit
$ git tag <tagname> # if you want to create a tag from this commit