I want to make changes to a file in my repo, then force git to believe the file is unmerged and show up in git status
like so:
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add <file>..." to mark resolution)
#
# both modified: lib/delayed/recipes.rb
#
That's the entirety of my question. Read on for an explanation of why, since I know that's the first thing that will be asked.
The purpose here is a bugfix for Piston which today leaves merge conflicts in the index where they are too easily overlooked.
The way piston update
works with a Git repo is:
- Clone the remote repo into a new temporary git repo
- Checkout that temp repo to the last commit we saw (saved in .piston.yml)
- Checkout our local repo (in a new branch) to the last commit where .piston.yml was updated
- Copy our local repo's files into the temp repo
- Commit all changes in the temp repo (these are our local changes as of the last time we updated this vendored project)
- Run
git merge master
in the temp repo to merge our local changes with the remote repo's changes - IGNORE MERGE CONFLICTS(!) and copy all the files from the temp repo to our local repo
- Commit those files (in our new temp branch) to our local repo
- Checkout local repo back to our original starting point
- Merge temp branch into local repo (adds any further changes we have made)
I expect to fix this problem by allowing the file with merge conflicts to be committed into the temp branch, but at the very end (after it runs git merge --squash
) I want to tell git about the files that had a merge conflict in the temp repo.