State Diagram Git Lab
BME554L - Fall 2026 - Palmeri
Lab
Git Practice
This week we will go through a very simple git workflow to get you familiar with the process and to confirm that your toolchain works for future assignments.
Initial main Branch Development
- Make sure that you have git installed, ssh keys configured, and your Duke GitLab account is setup, as detailed here
- Be sure to review the tutorials outlined on the git setup page, as needed, to complete the tasks below.
- Create a fork–not a clone–of the state-diagram-git-lab in your userspace.
- Add Dr. Palmeri (
mlp6) as aMaintainerof your forked repository (Left Sidebar:Manage -> Members -> Invite members) - Clone your forked repository to your laptop using the URL available under the blue Code button:
Clone with SSH.
Important
You want to clone your forked repository, not the parent repository you forked from!
Working on a Branch (Local)
- Create a development branch called
update_state_diagramand switch into it. - Update
README.mdto include the state diagram that you worked on in the Event-Drive State Machine lab. There is a section in theREADME.mdfile that has a placeholder for this diagram. - Add and commit these changes in the git repository with a meaningful commit message.
- Push this new branch to the
remote (origin)of your GitLab repository.
- Confirm that you can see your latest commit on this branch on the GitLab website.
Merge Request Time!
- Create a new Merge Request on the GitLab to merge the
update_state_diagrambranch into themainbranch.- Assign the Merge Request to yourself.
- You do not need a Reviewer.
- You do not want to squash or rebase your branch commits
- You do not want to delete the source branch.
- Check that the CI pipline jobs have passed.
Build -> Pipelines- Click on the latest pipeline (the colored rounded rectangle button in the status column).
- If the pipeline jobs for this branch have failed, you will need to fix the issue(s) and push the changes to your
update_state_diagrambranch.- If you are not sure what the issue is, click on the failed job to see the output of the test.
- If you are not sure how to fix it, ask for help!
- Once your CI jobs pass, approve your Merge Request on the GitLab website and
Mergeyourupdate_state_diagrambranch intomain. - Checkout the
mainbranch on your laptop and pull the latest changes from the GitLab server. - Confirm that you can see the updated
README.mdfile in yourmainbranch, along with its associated commit in your git commit history.
Create an Annotated Tag
- On the
mainbranch on your local machine, create an annotated tag for this commit associated with your mergedupdate_state_diagrambranch calledv1.0.0, with the message"include the state diagram info". - Push this annotated tag to the GitLab server (
origin). - Confirm that you can see your latest commit and tag on the GitLab website.
- You should see that the
check_v1_0_0_tagpipeline job has passed if this was successful.
How to Ask for Help
- If you have a general / non-coding question, you should ask your TAs / Dr. Palmeri on Ed to allow any of them to respond in a timely manner.
- Push you code to your GitLab repository, ideally with your active development on a non-
mainbranch. - Create an Issue in your repository.
- Add as much detail as possible as to your problem, and add links to specific lines / section of code when possible.
- Assign the label “Bug” or “Question”, as appropriate.
- Be sure to specify what branch you are working on.
- Assign the Issue to one of the TAs.
- If your TA cannot solve your Issue, they can escalate the Issue to Dr. Palmeri.
- You will get a response to your Issue, and maybe a new branch of code will be pushed to help you with some example syntax that you can use
git diffto visualize.
What to Submit
- Create an Issue on your GitLab repository called
Git Fundamentals Lab Submission. - Assign the issue to Dr. Palmeri.