我在Github上有一个项目,它是一个大项目的分支。
我为它创建了一个插件,但他们告诉我他们不会包含这个插件,我必须单独发布它,所以现在我想fork已经fork过的项目,但不是全部,只是我创建插件的目录。是否可行?
编辑: 显然在Github上我不能fork自己的存储库,所以我认为答案是否定的。
编辑: 显然在Github上我不能fork自己的存储库,所以我认为答案是否定的。
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
git remote set-url origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
git push -u origin BRANCH-NAME
git filter-branch
来重新编写存储库的整个历史记录,以保留(和移动)插件。这样做可以使你保留插件历史记录。
然后像https://stackoverflow.com/users/1967966/anh-nhan-nguyen在回答https://dev59.com/AW7Xa4cB1Zd3GeqPqoM8#14895900中建议的那样使用git submodule
。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
。不过这可能只是我的想象。