相关疑难解决方法(0)

如何将文件从一个git仓库移动到另一个(不是克隆),保留历史记录

我们的Git存储库最初是作为单个怪物SVN存储库的一部分开始的,其中每个项目都有自己的树,如下所示:

project1/branches
        /tags
        /trunk
project2/branches
        /tags
        /trunk
Run Code Online (Sandbox Code Playgroud)

显然,将文件从一个文件移动到另一个文件非常容易svn mv.但在Git中,每个项目都在自己的存储库中,今天我被要求将子目录从中移动project2project1.我做了这样的事情:

$ git clone project2 
$ cd project2
$ git filter-branch --subdirectory-filter deeply/buried/java/source/directory/A -- --all
$ git remote rm origin  # so I don't accidentally the repo ;-)
$ mkdir -p deeply/buried/different/java/source/directory/B
$ for f in *.java; do 
>  git mv $f deeply/buried/different/java/source/directory/B
>  done
$ git commit -m "moved files to new subdirectory"
$ cd ..
$
$ git clone project1
$ cd project1
$ …
Run Code Online (Sandbox Code Playgroud)

git repository

447
推荐指数
10
解决办法
13万
查看次数

如何将git repo中的单个文件拆分为新的repo?

我有一个带有几个目录的git仓库和一个文件MyFile.ext.

/
  LargeDir1/
  LargeDir2/
  LargeDir3/
      .
      .
      .
  MyFile.ext
Run Code Online (Sandbox Code Playgroud)

我想在其中开始一个新的回购MyFile.ext,并保留所有与之相关的历史,但忽略其他一切(所有的LargeDirs).我怎样才能做到这一点?

对于目录,我已成功使用此答案,但我在单个文件上尝试过,但它不起作用.

我也尝试过这个答案,除了我的文件外,它确实删除了所有内容,但它似乎也留下了所有的历史.

git

9
推荐指数
1
解决办法
624
查看次数

标签 统计

git ×2

repository ×1