On 8/27/25 06:30, Mark Geisert via Cygwin-apps wrote:
By mistake I replicated the author's git repository of chere into the
Cygwin repository. How can I nuke that so I can push my own repo, which
just has a .cygport and patch file like most projects have?
I suspect a 'git reset' then 'git push' on a clone of the target repo
will fail because the reset would clear out the config, right?
Hi, I assume you're asking for a general git advice (as in there's no
special handling by the cygwin git server).
You can "git push --force" to completely overwrite whatever is on the
server. However, it is frowned upon by git folks, because once it's
public, it is assumed someone might've cloned it and will rely on a
straight history without rewrites. Result: whatever you have committed
locally will end up on the server. A complete replacement.
Assuming, you never intended to start off with author's repository and
instead replicate your own previously working cygwin git repo -- I think
this is fine. But it depends on how cygwin infrastructure works, to
avoid conflicts with manual intervention, if any.
Rebase: you could "relink" your changes on top of whatever you've pushed
there. However, this will now rewrite *your* part of the history, so
nobody will know what old-cygwin-chere commits correspond to
new-cygwin-chere commits.
Merge: merge your used branch with (on top of) what you've pushed to the
server. If your branch had always been a derivative of author's, it
should end up clean and only produce one merge commit at most. At worst:
some conflicts to be resolved manually. If it's the latter: think twice.
TLDR: rebase would be wrong for losing old cygwin history. Force-push to
replace is acceptable and merge is worth trying locally before all that.
Create a new branch locally and see how merge behaves:
1. git checkout -b new-branch uploaded-origin/branch # create and go to
new branch, same as remote
2. git merge with-my-local-latest-commit # or branch name here to start
merge
--
Cheers,
Vadim