Prompt:
git and Github are tools for helping with versioning of files in collaborative efforts as well as archiving entries for your future self. Unfortunately working with git isn’t always completely straightforward. Jenny Bryan’s book “Happy git and github with R” helps with that. The book is available from http://happygitwithr.com/. Have a look over the index and pick one of the chapters for a more in-depth read.
Write a blog post answering the following questions:
- Write a short (100-150 words) summary of the chapter you read in-depth.
I read Chapter 1 and Chapter 30 in depth and glanced over the rest of them to understand the basic functionality of GIT. Chapter 1 talks about why GIT is important, and chapter 30 talks about working with your future self.
One of the most important feature of GIT is version control. It allows user to use “track changes” like function of microsoft word but much better. There are many hosting services like github, bitbucket, gitlab or self hosting. Learning how to use GIT initially has a steep learning curve however it pays off in the long run when a lot of the conflicts and new code is written and need to be rewritten in the future. Other advantages of GIT relates to “Exposure”: showing your work to the world, “keener”: learning from other people, “Collaboration”: feature such as Google Doc (multiple people working on the same file at the same time) and editing/saving etc like an email. There are a few types of repository, most common ones are public and private. The above discussed tools and tech of github allows to fix issues, bugs in softwares, and collbaorate effectively in any programming language including R.
Time Travel: As we all know time travel is impossible in our current understanding of universe and physics. However, the closest thing to time travel we have is the past files and storage. Git allows you to go back in time and check your previous work to use it in the future work or even copy or build something off of it completely new. Two functions of Git such as History and Blame helps in seeing the past work and the person who committed those changes.
- Looking back at all of the team projects you have been involved in, describe the biggest mishap you had. Could that have been avoided using git? How?.
Biggest mishap are usually about the contributions and communcation in a team. I do not think it would be completely avoided by the GIT but it could however be helpful to have a version control to communicate and collaborate effectively within the team. Also, having cloud storage helps a lot in working on different computers (considering me and my tomorrow’s self is a team). One of the research I am doing needs files to be updated constantly in python. I am using Box drive as a version control. If I had to create a new file everytime I make changes in the file I will have a thousand files in one month. My work is mostly only two people and we are fairly good in communicating with each other so it does not conflict too much. However, in the past when there were 3 or more people, it was a big problem to divide the work. Git can help in dividing the work very well and people not butting into each other’s work.
- Give an example of one new git feature that you learned about from Jenny Bryan’s book..
I heard about GIT many times in the past few years however I have never used it. This is the first time installing and using the GIT in a class, so everything in the Jenny Bryan’s book is new to me and there is a lot to learn. I lerned that it would be hard intially but it will get better with time, however one thing which might always bother even after being good at it is merging. I am not really sure how it will be hard but I am looking forward to learn to use this tool better in my projects and the labs and hopefully in my research.