我使用git-svn来练习git.我的意思是我绝不是个口交专家。一开始,我发现git令人望而生畏,但我开始对git的设计和能力着迷。我有一个问题,我不能回答在网上搜索,也许是因为它是很难搜索。
在使用git (在使用git - svn进行克隆之后)对特性分支进行了几天的开发之后,我想在git、svn、dcommit之前重新确定提交的基础。我不想用几十个小的、毫无意义的提交来淹没svn集成分支。为此,我知道我可以使用git重基-i。
此命令需要指定提交。我读过我能用(标签?)叫做git-svn。事实上,存在这样的提交/标记,我可以将git日志git-svn.,或者git重基-i git-svn。
到目前为止,这个还不错。现在,在这个介绍之后,我的问题是:
这个git-svn的引用是什么?标签?承诺?命令git标记--list没有显示任何内容,git-svn作为标记在我以前工作过的其他git克隆上不存在。
另一个问题:在我将svn提交后,该引用会被更改吗?可以手动更改吗?
谢谢。
发布于 2013-10-25 09:25:18
在这种情况下,git-svn不是标记。这是一种(特殊的) 远程跟踪分支,由git svn clone创建。
背景:
当您使用git svn clone克隆SVN存储库时,默认情况下,整个回购将被克隆为一个远程跟踪的git分支(要将SVN分支转换为git分支,必须使用选项-T、-b、-s;参见手册中的SVN分支的处理部分)。在这种情况下,git svn将创建远程跟踪分支为git svn。
现在,git允许您将引用缩写为分支;因此,您可以编写git log refs/heads/master,而不是编写git log master。同样,"refs/remotes/git-svn“也可以缩写为"git-svn”。这在手册gitrevisions中有解释。
因此,要回答你的问题:
这个git-svn的引用是什么?标签?承诺?
它是一个远程跟踪分支。它是由git branch -a显示的。
另一个问题:在我将svn提交后,该引用会被更改吗?
是。分支"git- SVN“跟踪您克隆的SVN回购,因此当您从SVN获取新的修订时,它将被更改;这包括调用git svn dcommit和git svn fetch。
可以手动更改吗?
是的,它可以,就像其他的git分支一样。但是,一般来说,这是没有意义的;它只会混淆git svn和混乱您的存储库。有些情况下是必要的(例如,重新获取服务器上更改的SVN修订版),但这是另一个问题.
发布于 2013-10-25 09:24:33
我在我的项目中广泛使用git-svn,我找不到一个名为git-svn的引用。你用的是哪个git版本?
根据我自己的经验,git-svn创建一个名为主干的引用,该引用指向从svn服务器检索到的最后一次提交。当您执行git、svn、dcommit或git重基时,引用将更新为提交,表示svn的首修订版。
为了执行您描述的dcommit,您可以:
git svn rebase (to update your current branch to the latest svn revision)
git rebase -i trunk (to rewrite local history before dcommit-ting)
git svn dcommit 在最后一步之后,主干引用将被更新到刚刚完成的svn修订版。
https://stackoverflow.com/questions/19584385
复制相似问题