7

我在 github 上有一个项目,这是一个大项目的分支。我为此创建了一个插件,但他们告诉我他们不会包含该插件,我必须单独发布它,所以现在我想 fork 已经分叉的项目,但不是所有内容,只是我制作该插件的目录。可能吗?

编辑: 显然在 github 上我不能 fork 我自己的存储库,所以我认为答案是否定的。

4

3 回答 3

3

您可以使用git filter-branch重写存储库的整个历史记录,只是为了保留(和移动)您的插件。这样做可以让您保留插件历史记录。然后在回答https://stackoverflow.com/a/14895900/611560git submodule中建议使用https://stackoverflow.com/users/1967966/anh-nhan-nguyen

问候。

于 2013-02-15T13:37:46.197 回答
3

只需git filter-branch完成这项工作。

克隆包含子文件夹的存储库。

git clone https://github.com/USERNAME/REPOSITORY-NAME

要从存储库中的其余文件中过滤掉子文件夹,请运行 git filter-branch,提供以下信息:

  • FOLDER-NAME:项目中您要从中创建单独存储库的文件夹。

  • BRANCH-NAME:当前项目的默认分支,例如 master 或 gh-pages。

.

cd REPOSITORY-NAME
git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME  BRANCH-NAME 

使用现有的远程名称和远程存储库 URL 为您的新存储库设置新的远程 URL 并推送

git remote set-url origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
git push -u origin BRANCH-NAME
于 2017-02-01T07:27:55.740 回答
1

将包含插件的目录放在单独的 GitHub 存储库中。我假设它是yourname/yourplugin

fork 大项目(yourname/bigproject此处),并将插件存储库添加为子模块。

git clone git@github.com/yourname/bigproject .
git submodule add git@github.com:yourname/yourplugin path/to/the/plugin

更新/拉取时,只需运行以下命令:

git pull --recurse-submodules
git submodule update

我认为你第一次必须这样做git submodule update --init。可能是我的想象。

于 2013-02-15T13:32:43.297 回答