Varios files modificados. Confirme solo el file A en branchA, fileB en branchB,

Tengo un proyecto en el que estoy trabajando. Cada vez que quiero crear una nueva característica, me ramifico desde su twig principal y creo una nueva, llamada FeatureX, que luego fusionaré en la principal.

Supongamos que creé una twig llamada featureA, y allí terminé modificando featureA (que está en fileA.py) y también modificando featureB (que está en fileB.py).

Al estar en branchA, si me comprometo como lo hago habitualmente, includeía los cambios realizados en el file B en branchA, que no quiero. Deseo confirmar los cambios realizados en el file A en branchA y los cambios realizados en el file B en branchB.

¿Cómo podría, estando en branchA, comprometer solo el cambio realizado en fileA.py, luego pagar en branchB y confirmar allí solo el cambio realizado en fileB.py?

Editar:

No especifiqué esto en mi post original y tal vez debería aclararlo: fileA y fileB existen en ambas twigs (branchA y branchB).

Sin embargo, cuando confirmo en branchA, quiero comprometer solo los cambios realizados en fileA, y dejar fileB no modificado. A continuación, realice la compra en branchB y confirme solo los cambios realizados en fileB, dejando intacta su versión de fileA.

Asegúrese de estar en la sucursal derecha para la característica A:

git checkout featureA 

agregue los cambios y comprométalos

 git add fileA.py # use correct path to the file, of course git commit -m "Glorious updates to fileA" 

Ahora, para llevar su cambio a fileB.py junto con la otra twig de características, hay un caso fácil y más complicado.

Caso fácil: fileB.py no difiere entre las twigs

Cambia a la otra twig, y ​​haz lo mismo

 git checkout featureB git add fileB.py git commit -m "Fabulous bugfixes to fileB" 

(Ligeramente) Caso más complicado: el fileB.py difiere

Si el fileB.py difiere, el process de featureB de la function featureB fallará (Git cancelará el process de pago con un post que los cambios no confirmados se sobrescribirán). Así que puedes probar el pago, no perderás los cambios a less que uses el modificador de -f/--force o uses algo más como git clean . Obtendrás este error:

 error: The following untracked working tree files would be overwritten by checkout: fileB.py Please move or remove them before you can switch branches. Aborting 

Tendrás que ocultar tu cambio por un momento. Me gusta esto:

 git stash # will save all uncommitted changed into a temporary space git checkout featureB git stash pop # will try to apply your saved changes; there may be a conflicts # if there are conflicts (Git will tell you), go through normal resolution git add fileB.py git commit -m "Incandescent stash of bugfixes to fileB"