Master de upstream, twigs temáticas – mío

Bifurqué un repository en mi count de github.

Entonces lo hice

git remote add upstream git@github.com:********/*********.git 

Ahora tengo el control remoto upstream , el original y el origin , mi tenedor.

Y mi twig master está rastreando origin/master .

Nunca voy a presionar al origin/master , ya que todas las requestes de extracción que haré serán de las twigs temáticas.

Al mismo time, a menudo extraeré los últimos cambios de upstream/master para crear nuevas twigs de tema a partir de él.

Entonces quiero configurar git de tal manera que:

  • mi master twig local está rastreando upstream/master
  • cuando estoy en la twig master y hago git push , esto fallará, porque upstream es de solo lectura.
  • cuando estoy en la twig master y hago git pull , extraeré los últimos cambios de upstream/master y de inmediato podré hacer git checkout -b my-new-topic-branch haya bifurcado desde el último upstream/master .

¿Algún comentario sobre el flujo de trabajo? ¿Cómo se establece git para esto?

Al estar en el master hice:

 git branch -u upstream/master 

Pero cuando cambié a una twig de tema:

 git remote show origin ... Local refs configunetworking for 'git push': master pushes to master (fast-forwardable) ... 

ACTUALIZAR:

La solución:

 (c8cc3a6) » git branch -d master Deleted branch master (was c8cc3a6). (c8cc3a6) » git branch --track master upstream/master Branch master set up to track remote branch master from upstream. (c8cc3a6) » git remote show origin ... Local refs configunetworking for 'git push': master pushes to master (fast-forwardable) ... (c8cc3a6) » git remote show upstream ... Local branch configunetworking for 'git pull': master merges with remote master Local ref configunetworking for 'git push': master pushes to master (up to date) (c8cc3a6) » git checkout master Switched to branch 'master' (master) » git pull Already up-to-date. (master) » git push ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. (master) » git checkout -b test-branch Switched to a new branch 'test-branch' (test-branch) » git push ... To git@github.com:********/*******.git * [new branch] HEAD -> test-branch 

O una forma más comprensible:

 (test-branch) » git branch -d master Deleted branch master (was c8cc3a6). (test-branch) » git checkout -b master upstream/master Branch master set up to track remote branch master from upstream. Switched to a new branch 'master' 

En su .git/config en su repository local, haga que la [branch "master"] se vea así:

 [branch "master"] remote = upstream merge = refs/heads/master 

Esto manejará los elementos 1 y 3 (configuration de rastreo y extracción). No estoy seguro de que exista una forma de cumplir perfectamente el elemento 2, pero probablemente descubras que, dado que el upstream no es tu repository, rechazará tus impulsos (a less que el propietario de ese repository permita el envío aleatorio de contribuyentes, lo que No estoy seguro de que se pueda hacer en github …).