Week 7 -- Git and Open Source Projects
This week we looked at some more Git functionalities and were split up into groups for open source projects. On Monday, we went over the differences of merging and rebasing in Git. I’m fairly new to Git, so I found Monday’s class to be very useful. From what I understand, merging is a commit that represents every change that has occured on a branch since it was branched from the master. When you merge a branch and the master together, you combine the commits from the branch and the master. All the changes that were made on the branch are also put into the master(after merge conflicts are resolved if there are any). The downside to merging however, is that they can clutter up Git logs, and make it much more difficult to understand the flow of a project’s history. A rebase, if I recall correctly, can be understood as “moving the base of the branch to a different position.” Sort of like a redo - “I meant to start here.” It essentially plucks commits from a branch one by one (chronologically), and reattaches them to a different commit. This is useful in cases where we want to bring in the latest changes from the master branch, and don’t want to merge the master’s new commits into the branch.
On Wednesday, we were bogged down by the blight of the coronavirus. Instead of having class in Courant, class was held over Zoom in a remote manner. While this was convenient, it sort of removed the classroom ambience and mindset associated with learning for me. Regardless, Wednesday’s class was still very interesting as we got the opportunity to meet our group members that we were going to work with for the rest of the semester. These group members were selected based on common interests completed in the questionnaire, and so we all got along pretty well. We were given some time to decide on which open source project we all wanted to try and contribute to as a group. At first we wanted to try and contribute to Phaser, which is an HTML framework for developing games, but after looking through the Github and evaluating our own Javascript skills, we decided not to. Thus, we all decided to keep looking. Ultimately, we went with the decision to try and contribute to Tuxemon, which is an open source RPG game based off the popular Pokemon games on the Nintendo systems. Tuxemon is coded in Python using Pygame, and all of us (Austin, David, Kyle, and me) are all familiar with Python so we all thought it was a good fit. Additionally, all of us are familiar with the game setup since we all have experience playing the original Pokemon games on the Nintendo systems. We all exchanged contact information, and opted to meet on Fridays in the afternoon to touch base.