sh 将子目录从Git存储库分离为单独的存储库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 将子目录从Git存储库分离为单独的存储库相关的知识,希望对你有一定的参考价值。

#!/bin/sh

# Usage: git-detach <directory> <target>
# Creates a new Git repository at <target> from the contents of <directory>
# and its history. Does not remove the directory from its original repo.
#
# E.g.: suppose project/ is a Git repository with a subdirectory lib/, then
#   git-detach project/lib/ standalone-lib/
# creates a new repository standalone-lib/ holding the contents of project/lib/
# as a separate repo.

if [ $# != "2" ]; then
    echo "Usage: git-detach <directory> <target>" >&2
    exit 1
fi

set -e #-x

src="$1"
tgt="$2"

subdir=$(cd "$src" && git rev-parse --show-prefix)

git clone $(cd "$src" && git rev-parse --show-toplevel) "$tgt"
cd "$tgt"
git filter-branch --subdirectory-filter "$subdir" --prune-empty

以上是关于sh 将子目录从Git存储库分离为单独的存储库的主要内容,如果未能解决你的问题,请参考以下文章

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

sh 将子目录从一个git存储库移动到另一个git存储库的子目录,而不会丢失提交历史记录。

如何在将一个巨大的存储库拆分为单独的存储库时将 SVN 转换为 GIT?

从 Bamboo 中的单独 GIT 存储库中提取文件

git将上游设置为存储库中的远程文件夹

sh 更新基目录下的所有git存储库