DEV Community

Cover image for Week 5: Git getting consfusing !!!! (in a good way)
Amazing
Amazing

Posted on

Week 5: Git getting consfusing !!!! (in a good way)

This week lab brought me back working on my genius friend's git repo which you can check out his amazing work hereDukeManh - OSD_SSG

For resources on how to implement supporting config feature please kindly follow this link which lead you to the documentation on how to implement it because I believe it is not something difficult to understand, instead I have a bit more to share

Working flow on how to work in an open source project

It has been the most challenging week so far for me to understand all the concept that the prof have to give. Since I'm not that good of a programmer so I will spend a bit time to summarize it down here for my furture use :) . So let talk about the workflow of contributing and testing other programmers's work in the Open Source world (in steps).

Step 1: Fork the project and clone it into your local machine
Step 2: For big project, they usually have test cases that need to be passed in order to run the project successfully so make sure you run all the test that required by the project
Step 3: Set up a remote to the upstream branch

$ git remote add <name-of-remote(suggested upstream for name)> <upstream git repo>

You can check all the remote using:

$ git remote -v

Step 4: Make sure your project is up to date with the upstream project using

$ git pull <remote-name>

Step 5: Create a topic-brand which either can fix a bugs,issues or adding feature to the project

$ git checkout -b <issue-##>

Step 6: When you are ready to show your work

$ git push origin <issue-##>

For testing your own project

Fetch your teamates repo into your local repo so they work will be available on your local repo. Note: From my own stupid expericence :) I did not fetch Duke repo and try to start a tracking branch and wonder why it did not work out for an hour :v

`$ git fetch

Create a branch that track changes of your teamates branch
$ git checkout -b <branch-name> <remote-name>/<teamates's-branch-name>

Testing it locally and if you are satisfied with the work. You can switch to your main branch and start a merge then push the main brain to Github:

$ git merge <remote-name>/<issue-##>
$ git push origin main

Why is it consfusing in a good way? I manage to replay the mupltiple parts of the lecture video multiple time and kind of getting a hang of the work flow but I'm gurantee for sure that I will have to practice a lot to fully understand and be comfort with the workflow

Thought on Genius programmer

I use Genius when talking about Duke since for me being a genius is having dedication and willing to put out the time to achieve your dream. For me, you and I can do anything clearly anything with a will to learn, to accept failure and especially put time working to achieve your dream !!!

Top comments (0)