make - how to fork github command line
Bifurcación utilizando TFS Git (1)
Si quita el control remoto ascendente ( A
), no puede funcionar.
Probablemente quieras algo como
# 1. create Client_A repo in TFS
# 2. get A repo locally
git clone http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/A
cd A
# 3. redefine remotes
git remote rename origin upstream
git remote add origin http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/Client_A
# 4. push to Client A
git push origin
# 5. push to A (when proper)
git push upstream
El cliente de Git no puede crear el repositorio en TFS, tiene que hacerlo manualmente a través de la interfaz web o usando mi utilidad TfsGitAdmin .
ACTUALIZACIÓN: La función Fork está disponible en VSTS o TFS 2018 y posteriores (consulte https://docs.microsoft.com/en-us/vsts/git/concepts/forks ).
Ahora estoy en un proyecto que usa TFS y Git. Y me di cuenta de que ya no podría Forks, así que pensé que les preguntaría a ustedes qué piensan sobre esto como una solución.
El problema que estoy teniendo es que tengo un proyecto "Base". Eso sería reutilizado para cada cliente que tenemos. Pero cada cliente tiene modificaciones en cierta medida (alrededor de 5-10%).
Estaba planeando incluir el proyecto "A" en "Client_A" y hacer los cambios necesarios. Todas las clases donde se pueden realizar cambios son implementaciones de clases abstractas en "A", por lo que podría sincronizar una nueva versión de A siempre que se cumplan las dependencias.
Mi problema ahora es que Forking no es compatible, estábamos usando bitbucket antes en mi equipo. Pero como estábamos integrados con el resto de la compañía, ahora necesitamos ejecutar lo que todos los demás están ejecutando ...
Esto es lo que estoy pensando hacer ...
git clone http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/A
cd A
git fetch origin
git branch -a
git checkout -b a_branch1 origin/a_branch1
git checkout -b a_branch2 origin/a_branch2
git checkout -b a_branchN origin/a_branchN
git branch -a
git remote add new-origin http://mycompany.com/tfs/MyDefaultCollection/My Git Projects/_git/Client_A
git push --all new-origin
git push --tags new-origin
git remote rm origin
git remote rename new-origin origin
Si lo hago, ¿todavía podré subir a A?