We will be creating a commit that adds the same fishtank.txt file on top of the origin/stable-3.1 branch; then, we will try to rebase this on top of the rebaseExample branch we created in the Rebasing commits to another branch section:
- Check out the branch named rebaseExample2, which tracks origin/stable-3.1:
$ git checkout -b rebaseExample2 --track origin/stable-3.1 Checking out files: 100% (212/212), done. Branch rebaseExample2 set up to track remote branch stable-3.1 from origin. Switched to a new branch 'rebaseExample2'
- Make a commit on the branch:
$ echo "My Fishtank Pirateship, Oister shell Coconut shell ">fishtank.txt $ git add fishtank.txt $ git commit -m "My brand new fishtank" [rebaseExample2 39811d6] My brand new fishtank 1 file changed, 4 insertions(+) create mode 100644 fishtank.txt
- Try to rebase the branch on top of the rebaseExample branch:
$ git rebase rebaseExample First, rewinding head to replay your work on top of it... Applying: My brand new fishtank Using index info to reconstruct a base tree... <stdin>:12: new blank line at EOF. + warning: 1 line adds whitespace errors. Falling back to patching base and 3-way merge... Auto-merging fishtank.txt CONFLICT (add/add): Merge conflict in fishtank.txt Failed to merge in the changes. Patch failed at 0001 My brand new fishtank The copy of the patch that failed is found in: /Users/JohnDoe/repos/chapter4/.git/rebase-apply/patch When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort".
- You can solve the conflict in your preferred editor. Then, add the file to the index using git add and continue with the rebase.
$ git add fishtank.txt $ git rebase --continue Applying: My brand new fishtank
- We can now check with gitk to see whether our change is rebased on top of the rebaseExample branch, as shown in the following screenshot: