Skip to contentSkip to conversation

Rerunning merge on a single file

DISCUSSION Kristian Amlie 2 participants 4 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

Hey, I have question about advanced merging.

Suppose I have a huge merge with conflicts all over the place. There is no way to avoid them, so I start working from the top. At some point, however, I make a mistake and lose the merge information for one file (for example by checking out the file from HEAD).

In that case I would like to get the conflict markers back, and do that file over again, but I don't want to throw away the rest of the index state. Currently the only way I can see to do this is by checking out several file versions under different names and then using git merge-file on them.

Is there a better way to achieve this?

Kristian

#1 lore raw
Quoted 7 lines · Kristian Amlie

Hey, I have question about advanced merging.

Suppose I have a huge merge with conflicts all over the place. There is no way to avoid them, so I start working from the top. At some point, however, I make a mistake and lose the merge information for one file (for example by checking out the file from HEAD).

Quoted 6 lines

In that case I would like to get the conflict markers back, and do that file over again, but I don't want to throw away the rest of the index state. Currently the only way I can see to do this is by checking out several file versions under different names and then using git merge-file on them.

Is there a better way to achieve this?

If the different versions are still in the index you could use:

$ git checkout --merge $file

Santi

#2 lore raw
Quoted 14 lines · Santi Béjar
Quoted 12 lines · Kristian Amlie

Hey, I have question about advanced merging.

Suppose I have a huge merge with conflicts all over the place. There is no way to avoid them, so I start working from the top. At some point, however, I make a mistake and lose the merge information for one file (for example by checking out the file from HEAD).

In that case I would like to get the conflict markers back, and do that file over again, but I don't want to throw away the rest of the index state. Currently the only way I can see to do this is by checking out several file versions under different names and then using git merge-file on them.

Quoted 5 lines
Quoted 1 line

Is there a better way to achieve this?

If the different versions are still in the index you could use:

$ git checkout --merge $file

In my case the files were added to the index already, so I guess it doesn't work then?

Kristian

#3 lore raw
In reply to Santi Béjar
Quoted 14 lines · Santi Béjar
Quoted 12 lines · Kristian Amlie

Hey, I have question about advanced merging.

Suppose I have a huge merge with conflicts all over the place. There is no way to avoid them, so I start working from the top. At some point, however, I make a mistake and lose the merge information for one file (for example by checking out the file from HEAD).

In that case I would like to get the conflict markers back, and do that file over again, but I don't want to throw away the rest of the index state. Currently the only way I can see to do this is by checking out several file versions under different names and then using git merge-file on them.

Quoted 5 lines
Quoted 1 line

Is there a better way to achieve this?

If the different versions are still in the index you could use:

$ git checkout --merge $file

Note that this is very new, as it was introduced in v1.6.0.1-26-geac5a40, so you'll need at least 1.6.0.2.

Santi