Git branches: re-using your dev branch

Warning

Be sure you have completed all the steps from last week, when you created a dev branch and then created, committed, and pushed up a change to your .gitignore file, and then created a pull request in the dev branch on GitHub and merged it into your main branch.

Also be sure that you have used git pull origin main and git pull origin dev to sync your main and dev branches back into your project directory in your /spare11/atm533/<NetID>/<teamName> folder.

Your project repo on GitHub

Let’s take a look at the project repository after we merged the pull request pertaining to the revision of .gitignore. We see that our main branch has commits, and the most recent commit was related to that merge:

Graphical user interface, text, application, email Descriptionautomatically generated

Click on the 3 commits link:

Graphical user interface, text, application, email Descriptionautomatically generated

We see the following:

  1. Our initial commit, when we first created this repo

  2. The modification of .gitignore, which we staged and committed, and then pushed up to our dev branch

  3. The merging of our dev branch into our main branch

Now, let’s see what our dev branch looks like. Mouse over the main branch pull-down menu, and select dev:

Graphical user interface, text, application Description automaticallygenerated

Graphical user interface, text, application, email Descriptionautomatically generated

We see that the dev branch is 1 commit behind the main branch. It doesn’t have the 3rd commit that we see in main; namely, the merge of the dev branch into main.

Graphical user interface, application Description automaticallygenerated

Recall that when we completed the merge, GitHub offered us the option of removing the dev branch. In general, this is a good practice, but let’s say we want to keep our dev branch around, and use it for periodic updates that we’ll eventually merge with main.

We could try performing a new pull request on the dev branch, pulling in the 3rd commit … but this would result in a constant “ping-pong” back and forth of superfluous commits that relate just to intra-branch merging. Instead, let’s stick with a practice of only merging from a development branch into our main branch, not the other way around.

Sync your dev branch locally

To do this, let’s go back to our terminal session, and sync up the dev branch with the main branch using command-line git commands, and follow these steps:

  1. cd to your team folder

  2. Check out your dev branch: git checkout dev

  3. Merge the dev branch with the main branch: git merge main

  4. Verify that the two branches are at the same commit: git branch -v

  5. Push the dev branch up to GitHub: git push origin dev

A screenshot of a terminal session that follows these steps appears below:

Text, letter Description automaticallygenerated

View the dev branch again on GitHub

Now, back on GitHub, the dev branch is the same as main in terms of its commit history:

Graphical user interface, text, application, email Descriptionautomatically generated

We can then resume using the dev branch to make additional changes to the project repository; stage/commit/push them, and then, only when we feel it’s time to merge them into main (for the SoS project, this would be once everyone on your team has made changes to their relevant notebook), we can follow the workflow we did with our simple change to .gitignore: open up a pull request; review the request; then accept and merge it into main.

You will do this as you address the Issues that have been posted on your team’s repo on GitHub.