对网站包进行更改,以便原始版本可以在下一个版本中包含它

时间:2014-01-28 16:07:43

标签: git github

如何对网站包进行自定义更改,原始所有者可以在其中查看并将其作为官方代码的一部分包含在内?

我正在使用GitHub上托管的django-adminaction rel 0.3

我有一个小问题我想修复我的项目并可能将其上传回GitHub,因此下一版本的adminaction可以包括使用它。

1 个答案:

答案 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_oneorigin/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