GitHub

by Jason Y
GitHub can be easily labeled as a distributed version control system, but GitHub is so much more than that. GitHub is a powerful collaboration and code management tool for open source and private projects. GitHub allows multiple people to work in friction-less development environments. People are able to work together on projects in organizations and communicate between each other with ease. With GitHub people are able to browse multiple repositories, create and manage different branches, and save changes both locally and on public servers. GitHub also leaves a paper trail so people it becomes easier to see who made what kind of changes to source codes.

The people who use GitHub range from developers to marketing teams to anyone that need to know what’s going on within a project. A person does not even need a proficient technical background to operate and use GitHub. With fifteen to thirty minutes of training, a user can be proficient with GitHub and understand the basic commands to navigate GitHub. For people who prefer speedy and quick commands, Git is the command line form of GitHub. This tool has basic repository hosting service but also adds so much more to provide a smooth and convenient user experience.

Many people do not know when is the right time to learn and use GitHub. Honestly, anytime is the perfect time to learn how to work with GitHub. Students can even take full advantage of GitHub. If there is a project that requires collaboration between groups of students, GitHub would allow them to add and remove code to their hearts content; all the while keeping track of all the changes. Through my internship, I was required to learn how to use Git so that it would be easier for me to get the most updated changes that the developers pushed up into the servers.

The beauty of Git is how remotely it is to access. During my internship this quarter, I noticed the flexibility of the hours for the developers. Developers were able to work from home freely or even work from coffee shops due to GitHub and its tolerance of mobility. There were about fifteen developers working in team ranging from two to five and they were all able to communicate swiftly their updates to codes. These fifteen did not include the few individuals in the marketing team who used GitHub to keep track of all the changes being made and new features added to their program.

Spinellis (2012) states, “Git allows developers and their managers to build a variety of interesting workflows.” What Spinellis means from this is that many different developers can pull from existing branches of code, create a new branch with that code, add features to the code as they like, and finally commit, push, and merge the code back to the original branch. This allows multiple developers to be working on the same set of code and eventually update and push the code back to the master branch.

Bourne (2013) says, “As nerd endeavors go, GitHub is pretty much at the top of the food chain. What began as a private project with zero commercial intent has since emerged as one of the world’s most – if not the most – powerful development tool for software.” I highly agree with this statement through personal experience because 8/10 developers at the internship that I had this quarter were all exposed to GitHub prior to attaining their job. Some of them were even asked if they knew how to use Git during their interviews. According to the article It’s GitHubs World” by Bourne, GitHub users went from 500,000 in 2010 to just under 3,000,000 in 2012.

The various popular commands that we use in Git include init, status, add, commit, push, pull, branch, rm, and merge. We begin using Git by accessing the master branch which should be our most stable branch in terms of bugs and crashes. From master branch we will create a new branch where we begin developing and adding features to our program. Within the development branch we would constantly keep pushing up latest builds and updates of our code. We also might be creating branches within our branches that will handle all of additional features within features.

Finley the author of the article What Exactly Is GitHub Anyway? from the website techcrunch.com states, “The flagship functionality of GitHub is “forking.” Forking is a brilliant feature that allows one user to pull contents from one repository and create a new branch with that content. This allows a user to make changes to an existing code easily without ruining the original code. If you want to share the code that you updated to the owner of the original code, you can do a pull request which notifies the author of the code. The author of the code can then merge the code which updates the original code with the updated version that the user added. Finley goes on to state, “These three features – fork, pull request and merge – are what make GitHub so powerful.”

In conclusion, Git is huge in the developing world and should be familiarized with. It allows for ease of access and people to work remotely. This incredible collaboration platform is highly adaptable to a team’s needs and can lead to a more organized workspace. Git is leading as a open source repository software and the integration of this software into a team’s project will definitely improve the speed and organization of their work.

Citations

Spinellis, D. (2012). Git. IEEE Software, 29(3), 100-101. Retrieved from

http://eeexplore.ieee.org.opac.library.csupomona.edu/stamp/stamp.jsp?tp=&arnumber=6188603

Bourne, W. (2013, 03). IT’S GITHUB’S WORLD. Inc, 35, 68-73. Retrieved from http://search.proquest.com/docview/1314490326?accountid=10357

Finley, K. (n.d.). Retrieved from http://techcrunch.com/2012/07/14/what-exactly-is-github-anyway/

14 thoughts on “GitHub

  • March 16, 2014 at 9:31 pm
    Permalink

    I had never heard of GitHub prior to your presentation and reading your article but now I feel like I should have known about it. As you mentioned, this application seems to allow for immense collaboration mainly in a coding environment which can definitely help CIS majors. It’s interesting how a simple application innovation such as this can allow for so much communication and mobility within development environment. Even if I don’t plan on being a software developer, i’m sure I will come across this software again in the future.

  • March 17, 2014 at 1:04 pm
    Permalink

    Hey I was shown this program in one of my other classes and it shocked me that this was not developed sooner, it is a nice and effective way to keep the project always running and the beauty of it is you can always access it a the most convenient time so time zone differences are not an issue anymore. Amazing job in collaborating on this!

  • March 18, 2014 at 12:33 pm
    Permalink

    We used GitHub at my last internship for our software and firmware code. Our programming team really liked the features that GitHub offered and it seemed to help them all keep organized while working on the same thing. Nice presentation.

  • March 18, 2014 at 6:54 pm
    Permalink

    I actually never heard of GitHub. I am glad that I now know about GitHub because I am sure I am going to use it in the future. I liked how you explain how many people and businesses use this systems to work on projects, I had just started using Dropbox and I can only imagine the complexity of this system.

  • March 18, 2014 at 9:07 pm
    Permalink

    This actually persuaded me to give GitHub a try for my next project. It seems useful for someone who is not as technologically adept as others. What are the benefits of GitHub as opposed to other hosting services? Is GitHub useful on a large-scale project?

  • March 18, 2014 at 9:20 pm
    Permalink

    I love using GitHub and I’m glad you spoke about this. I know it’s great for collaborating but as a student I tend to use it for my own individual projects more. It’s a really great resource when you’re learning to program because you can save your progress and if you need to look back at past work, it’s all saved to GitHub.

  • March 19, 2014 at 3:15 pm
    Permalink

    I have heard of Github before but I never knew what it was and what it was used for. This blog post did a good job at explaining what the purpose of Github was. I heard it before because Android developers on XDA-Developers used it to share code. I believe Github is very useful for programmers because it allows collaboration and sharing of code. It can keep a person’s projects well organized also.

  • March 20, 2014 at 7:53 am
    Permalink

    As a student, it is so good to know this control system. This system sounds useful and update as people could work on one project as a group which makes the process more efficiency.

  • March 20, 2014 at 1:53 pm
    Permalink

    I have never heard of Github but it sounds like a really great program that is yet to be discovered. The idea of being able to collaborate with people over the internet and allow them to change code with a paper trails makes practical for CIS use.

  • March 20, 2014 at 6:20 pm
    Permalink

    Github sounds like a great program for students to utilize for group projects. Students will not have to adjust their schedule to meet at certain place, but all they would need to do is log-on to do the program. This will also eleminate the unnecessary tension that may be created during an heated discussion.

  • March 20, 2014 at 7:20 pm
    Permalink

    GitHub really reminds me of the Google Docs system. I’m not really sure which one came first, but the fact that these collaborative tools are coming out using advanced database software and techniques is really interesting.

  • March 20, 2014 at 7:31 pm
    Permalink

    Very interesting topic. I now have another resource to possibly use when collaborating in projects for certain CIS classes.

  • March 20, 2014 at 7:58 pm
    Permalink

    The good about GitHub is that anybody can learn how to use in a short period of time, and its flexibility to work in any time zone, and its use to remove and ad code to a project and keep track of all changes is very helpful for many students, developer, managers, and people that uses. Also the facility that could be access from anywhere remotely, and that also allow managers and developers to built a variety of workflows due to the flexibility of the hours, it is a very powerful tool for software.

  • March 20, 2014 at 8:23 pm
    Permalink

    GitHub sounds like a wonderful way to make sure everyone is on the same page. An application like this can reduce any version errors in projects and speed up a project’s completion time. I think I’ll try it with some future classes.

Comments are closed.