Re: yet another workflow question...

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

 



Patrick Doyle schrieb:
I've been working on my project and I realize that I have 3-4 files
modified with two orthogonal sets of changes.  (I didn't realize this
until I said to myself -- "Self, I should really check in these files
before I go too much further down this path".)  So I start "git
diff"-ing the files and I find that most files have differences
related to only one change or the other, but one file has differences
related to both changes.

What do others do in this situation?
a) Not allow themselves to get into this situation in the first place
by careful planning?

b) Copy the file to "file.bothchanges", edit out one set of changes,
commit that with one log message, edit back in the other set of
changes, edit in the other set of changes, commit that with another
log message?

c) Use some sort of automation to do option (b) for them?

d) Something else?

Use git-gui.

Stage the files relevant for the first change. In the file where you have an overlap with the second change, you can right-click in the diff pane and select "Stage Hunk for Commit" on the hunk relevant for the first change.[*]

Commit with a message.

Stage the remaining changes and commit again.

At this point, I usually check out HEAD~1, i.e. the state *without* the second change, and compile and test to make sure I have a bisectable history.

[*] Of course, this works only if the changes are not in the same hunk. If there are at least 3 unmodified lines between the changes, you can choose "Less context" until they are in separate hunks.

-- Hannes

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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