I've been working on a project that has recently migrated from Subversion to Git. I had been committing to the Subversion repo via git-svn prior to the migration. After the migration, I noticed a fair amount of history has been lost because each of my merge commits from topic branches have been squashed (either via the git-svn bridge, or due to the migration), losing some of the commit messages I want to keep. Is it possible to use my local copy of the pre-migration repo to unsquash the merge commits in the post-migration repo, perhaps via something like cherry-picking?
How do I rewrite Git history to undo squashed merge commits?
325 views Asked by Geoff Oxberry At
1
There are 1 answers
Related Questions in GIT
- problem to push files on a repository git
- diff3 output in git conflict style, including mergeable hunks
- Git Not In Sync with Local Branch
- Setting up the version control of .dotfiles while the .config is connected to a forked repo
- How to fix overriding the main branch in Git?
- I can't add text to "Message" in VS Code when committing to Git
- How can i redirect pull request from main branch to another branch
- Xcode commits (possibly outside of any branch) disappeared, how to get them back?
- Git/TortoiseGit : how to apply ONLY the changes from ONE commit from branch A, to branch B?
- How can I reintroduce username an password on git using fedora?
- GIT SKIP EMPTY DIRECTORIES
- Git smudge run once per checkout or per commit?
- I can't find ~/.profile or ~/.bashrc in C:/Users/<user>/.ssh folder
- Set environment variable during push for GitHub Actions
- Android WebRTC compile
Related Questions in SVN
- Cannot load modules/mod_dav_svn.so into server
- Created Jenkins pipeline and added the script in the Pipeline Description.To check out the Project from the svn repository.NotWorking. Any Suggestion
- How to host SVN server on Cloud
- In two subversion repositories (same machine), can I have different usernames with no password prompting?
- Unrelated git histories when moving code from SVN to Git
- Convert local SVN to GIT using Tortoise GIT fails with unable connect?
- Jenkins Pipeline Script Check-in SVN using NPM
- Making latest subversion exec point to my restored subversion data directory
- Can anyone help on this "svn merge" problem?
- clone repo from SVN to GIT: unable to connect to a repository
- Possible to recursively serve an existing SVN checkout folder to another computer?
- How to push certain branches into git repository?
- Subversion svn merge failure
- Jenkins: SVN Checkout missing commit message
- SVN same setup, same user, fine from one machine but from another DAV/PROPFIND error
Related Questions in MERGE
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Having trouble merging these two datasets for a Spatial Analysis
- Merge Azure mp4 blobs via API (Preferred Azure)
- Git merge strategies vs. merge drivers vs. mergetools
- Merge Request in Bitbucket: Possible to exempt a specific branch to ask for Merge Request?
- How to properly extend the generic interface with a new generic parametr using decration merging in Typescript?
- Merge effective dated records of an attribute with the main effective dated table (SQL)
- How do I merge multiple tables into a new table in BigQuery?
- Exclude a file from merging to the main branch
- Usage of merge in linux sort utility
- How can I collapse repeated missing observations into a single nonmissing observation for the same ID in SAS?
- Best way to automate auto-merging git branches
- git: merging a branch that's already been merged by mistake
- Dynamically create, merge & save dataframes in a for loop
- VBA find matching Excel files with a subtext - and merge them into single new file
Related Questions in GIT-SVN
- Convert local SVN to GIT using Tortoise GIT fails with unable connect?
- clone repo from SVN to GIT: unable to connect to a repository
- git svn clone does not grab a branch not in stdlayout
- I need to migrate specific tags from svn to git
- How to git-svn clone specific subdirectories without the extra commit logs of the parent directory?
- getConnectors in SVN Eclipse
- Why my repo is empty after migrating a svn repo to git?
- Solution for moving SVN from branch to trunk
- How to clone SVN tags to GIT using tag name
- SVN subversion.javahl.ClientException: General filesystem error
- Git svn fetch restarts from 0 at each branch point
- git-svn tells me file is out of date but rebase doesn't solve it
- SVN to git migration with git svn returns "update-ref -m r40894 refs/remotes/origin/trunk 22c8704953ab8e....: command returned error: 127
- pushing a large cloned repo to github is failing (8gb) - fatal the remote hung up unexpectedly
- Svn to Git migration - command returned error: 128
Related Questions in GIT-REWRITE-HISTORY
- Remove long-gone name reveal
- How Can I Convert Tabs To Spaces Using Rebase?
- Rewrite one line in one file in entire git history using git filter-repo
- How to redirect from non eng to /eng/ in url path I am getting redirect loop (Right now in localhost but need both live and local)
- How can I insert extra commits using git replace?
- How to "add" the history of a previous git repo to a new one?
- Amending commit messages with git rebase when there are merge conflicts
- Git: Change authors through history
- Rewrite history to remove all additions of lines matching a certain pattern
- Putting unrelated histories behind each other
- Rewording a commit message in a Git repository with a non linear history
- Add a .gitignore file to every commit
- How do I format all commits in a branch?
- Git rebase branch onto squash merge
- How to remove the message about initializing Git LFS when cloning a repository?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
You can use git graft to augment squashed commits with another parent pointing to the real commit(s) that were merged in. Once you've added grafts for all squashed commits, you can permanently incorporate them by rewriting git history with
git filter-branchThis SO answer provides details on how to do it: Setting git parent pointer to a different parent