要提交对git存储库的一些更改,我必须先将其添加到暂存状态。如果我不添加要提交的文件,它将不会转到存储库。但是在SVN中,显然,没有这样的暂存状态。我对工作副本所做的每项更改都会在下一次svn提交时进入repo协议(protocol)。如何在不还原更改的情况下防止提交某些本地更改的文件? 最佳答案 svncommit命令采用可选的文件名参数来限制要提交的文件集:svncommit-m"mycommit"file1.txtfile2.txt您还可以使用"changelist"feature将一个或多个文件分组到一个更改列表中,可以在一
这是我的问题:我使用Subversion有一段时间,直到我切换到Git。又过了一些时间。没有将历史从Subversion导入到Git。这是一个严格的检查,删除.svn目录,然后是gitinit。这不是明智之举。现在,数以千计的git提交之后,我找到了在第一次git提交发生时创建的Subversion存储库的备份。啊哈!我想将git存储库回滚到第0天,正确导入svn存储库,然后重新应用所有git更改,从而纠正第一次没有做的事情。有人试过吗?我该怎么做呢?这听起来像是所有rebase之母。 最佳答案 听起来像是git移植的工作。这方面的
我们有一个包含我们源代码的SVN存储库。我们真的很想使用本地Git分支来开发新功能并利用merge算法等Git功能。这可能吗?如果是,有人可以提供一些有关如何执行该操作的信息吗? 最佳答案 是的。您将需要使用git-svn.首先,您需要gitsvnclone您的SVN存储库。请注意,这将从SVN服务器获取每个修订,并将历史重新创建为Git存储库。这些Git存储库不应由多个开发人员共享。每个开发人员都应单独运行gitsvnclone!然后您可以使用标准Git命令创建您想要的所有本地分支,因为您基本上拥有一个标准Git存储库,其中包含一
是否有使用svn命令行工具的等效gitlog-p?svnlog-v显示文件名但不显示更改。我希望看到先前提交引入的补丁。如果不可能,是否有办法获得单个先前提交引入的补丁(不是与head相比,只是变更集)? 最佳答案 svnlog--diff相当于gitlog-p.对于单个修订,您可以使用svndiff-c在git中是gitshow. 关于git-svn命令行相当于'gitlog-p'?,我们在StackOverflow上找到一个类似的问题: https://s
在我们的项目文件中,如果有二进制文件,比如.doc、.xls、.jpg,而我们选择不保留他们过去的版本(只保留最新版本就可以),有没有办法告诉SVN、Git或Mercurial或其他一些工具来跳过对这些文件或特定文件夹的修订?比如说,有一个4MB的.doc文件,我需要检查数百次,但我不太关心它过去的版本。因此,如果系统对其进行100次修订,那已经是400MB了……checkin300次意味着1个文件需要1.2GB,这并不好。只有最新版本才是好的,这样每个人都可以同步到它。此外,我不希望其他人checkout该项目并且必须checkout20GB的内容。(Git和Mercurial会在每
我正在尝试将我们的代码从包含大约1GB数据的SVN存储库(TortoiseSVN1.9.364位)迁移到带有Git存储库的TFS2015。我的电脑上有Git(2.9.0.1),当我尝试这个命令行时:gitsvnclonehttps://server/directory/trunk它创建了.git文件夹,但是我有一个perl.exe.stackdump文件有以下问题Exception:STATUS_ACCESS_VIOLATIONatrip=00000000000rax=0000000000000000rbx=00000006010B9448rcx=00000006010B9448rdx
我一直在研究git和git-svn。我是git的新手,但我已经能够创建一些基本的repo协议(protocol)。但是,我对团队使用git-svn的工作流程如何进行感到有些困惑。目标是将svn转换为git以用于分支和共享目的,然后在准备好推送到生产环境时提交回主svn存储库。这是我的问题:团队的每个成员都应该从svn存储库创建一个git存储库吗?当merge回svn/相互pull时,这种方法是否有效?-或-是否应该从svn创建一个git存储库,然后将该存储库“公开”推送给团队成员克隆?那么更改是否会被pull回到原来的git存储库以进行rebase并推送到svn?-或-除了从彼此的工作
在最近的git版本中,引入了配置svn.pushmergeinfo:configkey:svn.pushmergeinfoThisoptionwillcausegit-svntoattempttoautomaticallypopulatethesvn:mergeinfopropertyintheSVNrepositorywhenpossible.Currently,thiscanonlybedonewhendcommittingnon-fast-forwardmergeswhereallparentsbutthefirsthavealreadybeenpushedintoSVN.我们使
我正在为我们的svn存储库使用git-svn。然而,repo很大,所以我首先像这样检查了项目:gitsvnclonesvn://svn.server.com/project-s-r12000:HEAD所以,现在我只有当前修订版的修订版12000。我想检查更多的修订,但以下内容没有任何作用:gitsvnfetch-r11000:HEAD有没有办法获取旧版本? 最佳答案 我认为这并没有得到真正的支持,这样做会rebase整个存储库,这通常被认为是一件坏事。(虽然纯git非常乐意让你这样做搬起石头砸自己的脚)我看不出有办法做到这一点,即使
问题默认情况下,gitsvnclone仅从分支创建开始导入历史记录,尽管事实上,文件历史记录在分支创建之前存在于SVN存储库中。如果重要的话,我们的SVN分支是由svncopy创建的。我的尝试我试过--no-minimize-url和--follow-parent,但没有成功。生成的Git存储库与没有这些参数的情况相同,从分支创建开始。想要的结果具有SVN存储库创建的完整历史记录的Git存储库。更新我的实际命令行是gitsvnclonehttp://svnserver/repo/dir1/dir2/project有用的是-T参数和结果命令:gitsvnclonehttp://svnse