Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git svn-我可以同时使用git和svn吗?git和svn之间不需要交互_Git_Svn - Fatal编程技术网

git svn-我可以同时使用git和svn吗?git和svn之间不需要交互

git svn-我可以同时使用git和svn吗?git和svn之间不需要交互,git,svn,Git,Svn,我正在做一个开发项目 公司正在使用SVN,因此对于主commit和checkout应通过SVN完成 但是,我不喜欢SVN,我是git用户。因为只有当我认为我的代码是好的时,我才会向公司承诺SVN,所以我想使用git作为我自己的历史记录保管器 我不需要使用git来做SVN的事情,反之亦然 我可以同时使用SVN和git来控制我的代码版本吗它们之间没有交互。您可以使用git svn clone将subversion存储库克隆到您的机器上。代码将作为git存储库提供。你可以在那里做你的工作,并根据你的意

我正在做一个开发项目

公司正在使用
SVN
,因此对于主
commit
checkout
应通过
SVN
完成

但是,我不喜欢
SVN
,我是
git
用户。因为只有当我认为我的代码是好的时,我才会向公司承诺
SVN
,所以我想使用
git
作为我自己的历史记录保管器

我不需要使用git来做
SVN
的事情,反之亦然


我可以同时使用SVN和git来控制我的代码版本吗它们之间没有交互。

您可以使用
git svn clone
将subversion存储库克隆到您的机器上。代码将作为git存储库提供。你可以在那里做你的工作,并根据你的意愿进行本地提交。有一个命令行选项可以获得“浅层”签出,而不是通常有用的整个存储库。我忘了那是什么

任何时候,如果您想运行相当于
svn update
,请执行
git svn rebase
。这将获取上次同步后签入SVN的新提交,然后将更改重新定基到新提示上

准备好提交后,执行一个
git svn dcommit
。这将一个接一个地将您的所有新提交发送到svn。您还可以将本地提交压缩为一个单独的提交,并通过首先执行本地重基,然后执行svn dcommit来发送它。这应该在初始分支上完成(通常是
master


您正在从subversion签出,然后在git中本地工作,这一事实意味着它们之间存在“交互”,因此您的最后一条语句无效

只需忽略SVN的
.git
文件夹和git的
.SVN
文件夹,就可以了。或者你是在问如何基本上一次推/拉两个方向?但为什么?git在另一方的svn存储库中工作得非常好,为什么不从中受益呢?当然有可能,而且对您的同事来说是公平的,而不是推动未完成的更改。然而,其中隐藏着一个巨大的危险:您往往很少向公司存储库作出承诺。这意味着与同事相比,你会产生更多的冲突。当使用subversion时,使用频繁的提交行为是有意义的。我不得不以最艰难的方式学习:-)这是最糟糕的版本控制实践!See和Jeff Atwood:“长时间工作的开发人员——我指的是超过一天的时间——没有检查任何源代码管理,他们正在为自己设置一些严重的集成难题。”对答案进行了编辑,应该作为评论发布。我已经还原了编辑并在这篇评论中逐字发布了添加内容——通常认为将所有更改作为一个修订提交是一种不好的做法(例如,请参见和)。对于浅层签出:
git svn clone-s-r1002:HEADhttp://paul@svn.xxxxxx.com/repos/-T trunk-b branchs-T标签
其中“1002”必须替换为要保留的早期版本。