如何对网站包进行自定义更改,原始所有者可以在其中查看并将其作为官方代码的一部分包含在内?
我正在使用GitHub上托管的django-adminaction rel 0.3。
我有一个小问题我想修复我的项目并可能将其上传回GitHub,因此下一版本的adminaction可以包括使用它。
答案 0 :(得分:4)
我会将它作为子模块添加到您的项目中,并在您自己的fork中进行更改。
在Github上,将repo分支到您自己的个人资料帐户,然后在路径bundle/adminactions
的项目仓库中将其作为子模块添加。
git submodule add git@github.com:[Ohad the Lad]/django-adminactions bundle/adminactions
git add bundle/adminactions
git commit -m 'Added nested git repo to my django project`
这将使用origin
配置repo作为您的个人资料版本的回购。我还要从upstream
添加saxix/django-adminactions
存储库,以便您可以引入上游更改。
git remote add upstream https://github.com/saxix/django-adminactions
所以现在你应该设置两个远程存储库:
patrick@cyrus:~/bundle/adminactions(develop)$ git remote -v
origin git@github.com:[username]/django-adminactions.git (fetch)
origin git@github.com:[username]/django-adminactions.git (push)
upstream https://github.com/saxix/django-adminactions (fetch)
upstream https://github.com/saxix/django-adminactions (push)
现在,在您的项目中,不是像往常一样导入它(例如import adminactions.actions as actions
),而是从新路径导入它:
import bundle.adminactions.actions as actions
要从您的分支向upstream
saxix/django-adminactions.git
项目发出拉取请求,您应该创建一个新分支并将其推送到origin
遥控器。
cd bundle/adminactions
git checkout -b feature/new_feature_name
[ make changes to your files here ]
git commit -m 'New widget & gizmo (1 of 2) widget does X (2 of 2) gizmo does Y'
git push --set-upstream origin feature/new_feature
现在,您的更改将在您的回购中的不同分支中进行。您现在可以访问https://www.github.com/[Ohad the Lad] / django-adminactions并发出拉取请求。
假设您确实已推送new_feature
分支,则会有一个标有“比较和拉取请求”的绿色按钮,您可以将更改发送到saxix/django-adminactions
上游。
提示#1 :如果要更改应用程序的多个不同功能,我会将每个功能分别放在feature/
上的单独origin
分支中repostitory。例如。 origin/feature/new_feature_one
和origin/feature/new_feature_two
。
提示#2 :作为git submodule
您的父文件夹,django网站项目,未看到bundle/adminactions
中的所有文件。它只看到具有特定提交的adminactions
(例如django-adminactions.git @ 3c57c96aafaa48c821caacb9f7b9589b7957bfe1
。当您在嵌套的子模块文件夹中签出不同的分支/提交时,要更新父django项目以要求此版本,您只需{{1 }和git add bundle/adminactions
。
提示#3 :由于git commit -m 'Checked out newer version of django-adminactions
回购可能会在您分拆回购后继续进行更改,因此将上游更改频繁合并到upstream
中会很有用存储库以保持一致性。我使用的别名命令origin
表示“合并上游”,可能对您有所帮助。
mup