Re: Stage, test, and commit only some changes, then repeat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Géry Ogam <gery.ogam@xxxxxxxxx> writes:

>> Le 31 janv. 2022 à 17:27, Sergey Organov <sorganov@xxxxxxxxx> a écrit :
>> 
>> Géry Ogam <gery.ogam@xxxxxxxxx> writes:
>> 
>>> Hello,
>>> 
>>> I would like to stage, test, and commit only *some* changes of the
>>> working tree, and then repeat this process with the remaining changes.
>>> 
>>> My current solution (published at
>>> https://stackoverflow.com/a/70914962/2326961):
>>> 
>>> 1. Stage some changes:
>>>   ```
>>>   git add -p file
>>>   ```
>>> 2. Save away the remaining changes:
>>>   ```
>>>   git diff >patch
>>>   git stash push -k
>>>   ```
>>> 3. Test the staged changes.
>>> 4. Commit the staged changes:
>>>   ```
>>>   git commit
>>>   ```
>>> 5. Restore the remaining changes:
>>>   ```
>>>   git apply patch
>>>   ```
>>> 6. Go to step 1.
>>> 
>>> It is not ideal because a) it uses a patch file for saving the
>>> remaining changes; b) it uses the stash only for setting the working
>>> tree to the index state.
>>> 
>>> It would be ideal if I could save *only* the remaining changes in the
>>> stash instead of resorting to a patch file. How to do it?
>> 
>> It looks like you don't need patch file for this workflow. What's wrong with:
>> 
>> git add...
>> git stash push --keep-index
>> ... check, git add fixes
>> git commit
>> git stash apply
>> 
>> ???
>> 
>> -- Sergey Organov
>
> Hello Sergey,
>
> `git stash` saves the transition from the HEAD state to the working
> tree state. It also sets the working tree to the *HEAD* state.
>
> `git stash --keep-index` saves the transition from the HEAD state to
> the working tree state. It also sets the working tree to the *index*
> state.
>
> `git stash pop` applies the last saved transition. So if the working
> tree was not in HEAD state (like after `git stash --keep-index`),
> there will be a conflict.

Did you actually try it and got conflict? I doubt there will be any if
you don't modify anything after "git stash --keep-index" during testing,
and if you do, than any method might bring conflicts.

In fact I just re-tested this to make sure, and got no conflicts.

-- Sergey Organov



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux