2009-12-01 3 views
10

Ok, donc j'ai un gros projet github que je ne suis pas supposé fusionner avec ma petite branche Stacia. Cependant, il semble que Heroku ne prenne le MASTER au sérieux. Il semble que j'ai poussé ma branche, mais par exemple si je n'ai que ma branche, il agit même comme s'il n'y avait pas de code sur le serveur. Je ne peux même pas installer mes gemmes puisque le fichier .gems est sur ma branche.heroku utilisant la branche git est déroutant!

Fondamentalement, je ne veux même pas que Heroku sache qu'il y a un maître. Je veux juste utiliser mon test de la branche Stacia. Mais il continue d'ignorer ma branche locale. Y a-t-il un moyen de faire cela? Et encore, je ne veux pas écraser quoi que ce soit sur le dépôt principal de Github (eeek!) Mais ça irait probablement si j'avais à la fois master et ma branche sur heroku et les fusionnais là.

Je suis un git novice total (sur windows pas moins) alors s'il vous plaît ours avec moi.

Répondre

2

La première étape est de vous assurer que vous avez rebasage votre succursale locale au-dessus de son maître (Admettons qu'il est dans sa mise en pension mainGitHubRepo ')

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

Revenez ensuite à votre succursale et le rejouer haut de mainGitHubMaster:

git checkout Stacia 
git rebase mainGitHubMaster 

Comme georgebrock mentionne dans le commentaire, vous ne devez pas créer la branche locale intermédiaire mainGitHubMaster: vous pouvez directement rebasage au-dessus de la branche chercher.

git checkout Stacia 
git rebase maingithubrepo/master 

Après cela, vous pouvez pousser votre branch to your GitHub fork, puis faire un pull request.

Pour pousser une branche locale à une distance établie, il vous suffit d'utiliser:
git push REMOTENAME BRANCHNAME. Si vous ne souhaitez pas utiliser le même nom sur la branche distante, vous pouvez utiliser:
git push REMOTENAME LOCALBRANCHNAME:REMOTEBRANCHNAME.

(qui est ce que David Dollar mentionne dans his answer: git push heroku yourbranch:master)

Remarque: si vous avez votre propre fourche sur GitHub, vous pouvez travailler directement sur « maître » pour cette fourchette, ce qui signifie votre demande de traction viendrait d'une branche «maîtresse», augmentant vos chances d'être considéré.
Mais le processus mentionné ci-dessus reste valide: votre requête d'extraction doit aboutir à des fusions triviales pour celui qui va intégrer vos modifications, d'où l'étape de rebasement à effectuer localement.

+0

Vous pouvez sauter une étape dans ce processus par rebasage sur la branche de suivi à distance sans créer une branche locale: 'git chercher maingithubrepo ; git caisse stacia; rebase maingithubrepo/master' – georgebrock

+0

@georgebrock bon point, je l'ai inclus dans la réponse pour plus de visibilité – VonC

58

Si vous voulez pousser une branche différente de Heroku, vous pouvez faire quelque chose comme

git push heroku yourbranch:master 
+13

Cela devrait être la réponse acceptée. –

+0

A travaillé parfaitement - merci !! – Jim