小编ebn*_*ter的帖子

如何将文件从一个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存储库中删除旧历史记录?

我恐怕找不到任何类似这种特殊场景的东西.

我有一个有很多历史的git存储库:500多个分支,500多个标签,可以追溯到2007年中期.它包含~19,500次提交.我们想在2010年1月1日之前删除所有历史记录,以使其更小更容易处理(我们将在存档库中保留历史记录的完整副本).

我知道我想要成为新存储库的根目录的提交.但是,我不能找出正确的git mojo来截断repo以从那个提交开始.我猜的是一些变种

git filter-branch
Run Code Online (Sandbox Code Playgroud)

涉及移植是必要的; 它也可能是必要的对待每一个我们要分别保持在200多个分支机构,然后修补回购重新走到一起(这是我知道该怎么做).

有没有人做过这样的事情?如果重要的话,我有git 1.7.2.3.

git git-filter-branch

188
推荐指数
8
解决办法
11万
查看次数

如何在OpenGrok中处理git分支?

我们想使用OpenGrok索引我们(相当大的)git存储库的索引,而我无法弄清楚的一件事是如何索引所有分支.从我所看到的,看起来我需要签出我想要索引的每个分支的副本,因此,如果一个存储库有十几个分支,我需要有十几个分支,一个对于每个分支,例如,

git-repo-with-many-branches-master/
git-repo-with-many-branches-branch1/
git-repo-with-many-branches-branch2/
       :
git-repo-with-many-branches-branch12/
Run Code Online (Sandbox Code Playgroud)

这是真的吗?或者有没有办法告诉OpenGrok 在创建索引时查看所有分支?

git opengrok

4
推荐指数
1
解决办法
5037
查看次数

标签 统计

git ×3

git-filter-branch ×1

opengrok ×1

repository ×1