如何使用git svn?
请提供有效使用git和svn的技巧。你的“最佳实践”是什么?以下是我最近学到的一些:如何使用git svn?,svn,git,Svn,Git,请提供有效使用git和svn的技巧。你的“最佳实践”是什么?以下是我最近学到的一些: 在执行git svn DCOMIT之前,请始终执行git svn rebase 当您执行dcommit时,请从临时暂存分支执行此操作-如果您(或git)陷入困境,只需删除分支并重新开始即可轻松恢复 当svn dcommit在一次大型提交的中途死亡,并且您似乎丢失了所有历史记录时: 如何恢复: 首先,打开.git/logs/HEAD 查找提交的哈希值,该哈希值是 你的git回购的负责人。希望你 记住提交消息并可以
dcommit
时,请从临时暂存分支执行此操作-如果您(或git)陷入困境,只需删除分支并重新开始即可轻松恢复svn dcommit
在一次大型提交的中途死亡,并且您似乎丢失了所有历史记录时:
如何恢复:
首先,打开.git/logs/HEAD
查找提交的哈希值,该哈希值是
你的git回购的负责人。希望你
记住提交消息并可以
想清楚了,但它应该很漂亮
明显的
回到你现在的f-ed工作目录:
git重置——硬
这将使您的工作目录返回到
在你做git-svn之前它在哪里
D委员会。然后:
git svn重新设置git svn DCOMIT的基础
创建克隆时,请使用
--prefix=svn/
。它创建了更好的分支名称
另外,在执行clone
或init
时,不要忽略--trunk
、--tags
和--branchs
参数
获取是比较耗时的步骤之一,因此设置一个cron作业在后台执行git svn fetch
。这是安全的,因为获取不会影响任何工作分支
(关于git svn-fetch
的背景信息:每当您执行git svn-rebase
时,都会首先执行此命令,因此通过提前执行此步骤,您的git svn-rebase
调用通常会更快。fetch
命令会下载svn提交,并将它们粘贴到git svn管理的特殊分支中。这些分支可以通过执行git branch-r查看,如果执行了上述步骤,则以“svn/”开头)
确保您知道如何使用git reflog
。我曾经有过几次git svn dcommit
死机的情况(通常是因为我试图签入一些大文件)而且我的提交似乎丢失了。在任何情况下,提交都很容易在reflog中找到。如果SVN存储库中有一个可以拒绝提交的提交后钩子,那么git SVN dcommit
将在第一次拒绝提交时停止处理提交,并且您必须从git reflog恢复剩余的提交
事实上,我认为上述问题是由于我的cow同事在试图修复被拒绝的提交时没有正确运行git rebase-I造成的。但是,多亏了reflog,我们能够恢复一切!我已经在博客上写了一些关于如何并行使用Subversion和git的内容,我还提出了一些基本的建议截屏。在这里收集所有信息: 我将尝试一个摘要:
- 试试看吧!试试也无妨:)
- 首先从一个小的Git项目开始学习
- 坚持使用命令行,直到掌握它为止。GUI工具可能会让您感到困惑
- 如果可能,进行一次性迁移,将SVN留在后面,一次一个项目,从小项目开始
- 如果您必须同时使用Git和SVN,请注意您必须放弃从Git获得的许多优势,例如分支,但您可以获得“本地”好处(隐藏、索引、速度)
- 如果您是一个Git用户,只需自己进行Git svn重定基址和数据提交即可
- 如果您是多个Git协作者,请设置一个仅从SVN提取数据的中心Git/SVN,而每个Git用户直接将数据提交回SVN李>
dcommit
不会经常中断,当它中断时,恢复并不困难。今天,它决定perl将在中途转储core-这让我的工作副本丢失了很多更改扫描您能解释更多关于获取技巧的信息吗?那有什么用?你只是在后台一遍又一遍地运行它吗?这样做之后,您如何将更改添加到分支中?好的,添加了一些关于fetch的额外信息