From: Johannes Sixt Date: Sun, 30 Jan 2022 21:13:45 GMT Subject: Re: Stage, test, and commit only some changes, then repeat Message-ID: <8db0ee81-c66a-1888-6727-f5ab61cff60f@kdbg.org> In-Reply-To: <37128901-233F-4428-8A52-470773A18AB0@gmail.com> Am 30.01.22 um 21:17 schrieb Géry Ogam: > 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? For example: 1. Stage some changes 2. Commit 3. git stash 4. Test 4a. git commit --amend if tests show that the commit is not yet perfect 5. git stash pop 6. Goto 1. Be prepared for conflicts in 5 if 4a was necessary. -- Hannes