相关疑难解决方法(0)

将(移动)子目录分离到单独的Git存储库中

我有一个Git存储库,其中包含许多子目录.现在我发现其中一个子目录与另一个子目录无关,应该分离到一个单独的存储库.

如何在将文件的历史记录保存在子目录中的同时执行此操作?

我想我可以制作一个克隆并删除每个克隆的不需要的部分,但我想这会给我一个完整的树,当检查旧版本等.这可能是可以接受的,但我宁愿能够假装两个存储库没有共享历史记录.

为了说清楚,我有以下结构:

XYZ/
    .git/
    XY1/
    ABC/
    XY2/
Run Code Online (Sandbox Code Playgroud)

但我想这样做:

XYZ/
    .git/
    XY1/
    XY2/
ABC/
    .git/
    ABC/
Run Code Online (Sandbox Code Playgroud)

git git-filter-branch git-subtree

1712
推荐指数
15
解决办法
25万
查看次数

如何将包含历史记录的SVN存储库迁移到新的Git存储库?

我阅读了Git手册,常见问题解答,Git - SVN速成课程等等,他们都解释了这个和那个,但是你无处可以找到一个简单的指令:

SVN存储库: svn://myserver/path/to/svn/repos

Git存储库: git://myserver/path/to/git/repos

git-do-the-magic-svn-import-with-history \
svn://myserver/path/to/svn/repos \
git://myserver/path/to/git/repos
Run Code Online (Sandbox Code Playgroud)

我不希望它那么简单,我不指望它是一个单一的命令.但我确实希望它不要试图解释任何事情 - 只是说这个例子采取了哪些步骤.

svn git version-control git-svn

1486
推荐指数
18
解决办法
45万
查看次数

如何将svn分支和标签导入git-svn?

我有一个我必须承诺的中央SVN存储库,但我对git充满热情(就像我认识的任何其他开发人员一样).这个案子众所周知.

然后我读了一下git-svn并尝试了一下.由于我不需要完整的历史,仅仅两个月左右,我就是这样的:

git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
Run Code Online (Sandbox Code Playgroud)

像往常一样,SubProject拥有子目录trunk,tagsbranches.大.

然后,为了获得最后一次修订,我做到了

git svn rebase
Run Code Online (Sandbox Code Playgroud)

有些下载,很棒.最后修订,日志等等,好的,现在我将切换到我的功能分支.

$ git branch 
* master
Run Code Online (Sandbox Code Playgroud)
$ git branch -r  
  trunk
Run Code Online (Sandbox Code Playgroud)
$ git branch -a  
* master
  remotes/trunk
Run Code Online (Sandbox Code Playgroud)

问题是:我的分支在哪里?我做错了什么吗?我怎么做才能在新的git仓库中获得我的分支机构?

git-svn,无论我在哪里阅读它,明智地处理分支和标签,但行为不是我所期望的.谢谢!

编辑:我刚刚发现git svn fetch将会这样做.但它会得到所有修改,这是我不喜欢的.

svn git git-svn

67
推荐指数
6
解决办法
5万
查看次数