10

好的,所以我有一个很大的 github 项目,我不应该将我的小 Stacia 分支合并到其中。然而,Heroku 似乎只认真地推动 MASTER。看起来我推送了我的分支,但例如,如果我只有我的分支,它甚至表现得就像服务器上没有代码一样。我什至无法安装我的 gem,因为 .gems 文件在我的分支上。

基本上我什至不想让 Heroku 知道有一个大师。我只想使用我的测试 Stacia 分支。但它一直无视我当地的分支机构。有没有办法做到这一点?再说一次,我不想覆盖主 Github 存储库(eeek!)上的任何内容,但是如果我在 heroku 上同时拥有 master 和我的分支并将它们合并到那里,那可能就可以了。

我是一个完全的 git 新手(在 Windows 上不少于)所以请多多包涵。

4

2 回答 2

58

如果您想将不同的分支推送到 Heroku,您可以执行类似的操作

git push heroku yourbranch:master
于 2010-01-21T18:39:55.837 回答
2

第一步是确保你的本地分支在它的主分支之上(假设它在它的 repo 'mainGitHubRepo' 中)

git fetch mainGitHubRepo master
git checkout -b mainGitHubMaster mainGitHubRepo/master

然后回到你的分支并在 mainGitHubMaster 上重放它:

git checkout Stacia
git rebase mainGitHubMaster

正如georgebrock在评论中提到的那样,您不必创建中间本地分支mainGitHubMaster:您可以直接在 fetch 分支之上重新设置基础。

git checkout Stacia
git rebase maingithubrepo/master

之后,您可以将您的分支推送到您的 GitHub 分支,然后发出拉取请求

要将本地分支推送到已建立的远程,您只需使用:
git push REMOTENAME BRANCHNAME.
如果您不想在远程分支上使用相同的名称,您可以使用:
git push REMOTENAME LOCALBRANCHNAME:REMOTEBRANCHNAME.

(这是大卫美元在他的回答git push heroku yourbranch:master中提到的:)

注意:如果您在 GitHub 上有自己的分支,则可以直接在此分支的“主”上工作,这意味着您的拉取请求将来自“主”分支,从而增加您被考虑的机会。
但是上述过程仍然有效:您的拉取请求必须导致将集成您的更改的人进行微不足道的合并,因此要在本地进行 rebase 步骤。

于 2009-12-01T08:13:49.980 回答