Lesson 5
Writing Reusable and Self-explanatory Programs
Chapter 8: git branch
git merge
Now, let’s switch back to the killer
branch.
user@MACHINE:~/branchtest$ git checkout killer
user@MACHINE:~/branchtest$ git log --oneline
9d34c0a (HEAD -> killer) Added a new file idea.txt
6ca445c Added b to python.txt
620496e Initial commit
user@MACHINE:~/branchtest$ ls
idea.txt python.txt
You might notice that idea.txt
is back.
If you look at python.txt
, you will see that the latest change has not been included (c
had not been added). Obviously, the file has not been changed in killer
branch version, since it is now independent of the main
branch since breaking out.
Now let’s say you are happy with your killer idea, and want to include this in your main
branch. We will now try to merge all your changes back into the main
branch.
First, switch back to the main
branch. This is something you need to remember to do before merging. The run git merge killer -m "Your commit message"
.
user@MACHINE:~/branchtest$ git checkout main
user@MACHINE:~/branchtest$ git merge killer -m "My killer idea works! Merging killer to main branch"
Merge made by the 'recursive' strategy.
idea.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 idea.txt
user@MACHINE:~/branchtest$ git log --oneline --all --graph
* 23e5475 (HEAD -> main) My killer idea works! Merging killer to main branch
|\
| * 9d34c0a (killer) Added a new file idea.txt
* | 76917d8 Added c to python.txt
|/
* 6ca445c Added b to python.txt
* 620496e Initial commit
As you can see from the graph, you have merged both branches, and the main
branch points to the latest commit.
And if you look at your branchtest
directory, you will find idea.txt
in there, as well as the latest python.txt
!