tener - ¿qué hace git log-oneline?
Solicitud de extracción de Git para un solo archivo (3)
Ponga cada archivo en su propia rama. Puede generar una solicitud de extracción para cada rama, que debería hacer lo que quiera.
Esta pregunta ya tiene una respuesta aquí:
He realizado varios cambios en dos archivos en un repositorio Git (específicamente, agregé dos fórmulas para preparar).
Me comprometí los cambios individualmente:
git commit file1
git commit file2
Entonces hice un empujón a GitHub:
git push [email protected]:myname/homebrew.git
Ahora me gustaría enviar dos solicitudes de extracción al repositorio ascendente, una para file1, una para file2. es posible?
Si ha cambiado ambos archivos en la misma confirmación, entonces no, esto no es posible. Los empujes y los tirones funcionan a nivel de compromiso; No los separarán.
Si aún no ha compartido los cambios, puede dividir el compromiso en dos, hacer una rama para cada uno, y luego iniciar las solicitudes de extracción para ellos.
Esta es una de esas cosas que hay muchas formas de hacer, pero por ejemplo, podría hacer algo como esto:
# make sure the commit in question is the most recent
# make branch to point to the previous commit, leaving the changes in your work tree
git reset HEAD^
# commit the changes to the first file
git add file1
git commit
# make a branch for the first commit
git branch first-branch HEAD^
# commit the changes to the second file
git add file2
git commit
# create and check out a branch for this commit
git checkout -b second-branch
# rebase the branch back, so that it doesn''t include the first commit
git rebase --onto HEAD^^ HEAD^ second-branch
# point your master branch somewhere that makes sense - maybe before either branch
git checkout master
git reset --hard first-branch^
Esto te dejaría con una historia como esta:
- x (master) - A (first-branch)
/
- B (second-branch)
donde commit Un archivo modificado1, y commit B modificado un archivo2.
Una vez que la historia se ve como te gusta, puedes empujar las dos ramas por separado y hacer lo que necesites hacer con ellas:
git push origin first-branch second-branch
Solo puede obtener la revisión completa (en realidad, toda la rama que conduce a la revisión), pero luego puede acceder a archivos individuales desde su repositorio:
git checkout <rev> -- <file>