Git and Github

Git is a code version control system created by Linus Tovalds, the father of Linux. You can think of Git simply as a tool for managing code history. For example, when I used to manage the documents that needed to be changed repeatedly, I usually manually backed up the documents with the date and version number. Now with Git, I only need one document and can check the changed content at any time. If I make a mistake, I can always go back to any previous version and even if I delete it, I can also restore it.

Github is a Git-based project hosting platform. Github is now the world’s largest social programming and code hosting platform and is often derided as the world’s largest gay dating site, or Gayhub for short.

Here is a classic picture of Github interface on Zhihu:

20170712149985746350609.png

Github allows you to do a lot of things like write a book, create a blog, collaborate on translation, manage projects, manage government documents (the Japanese government has put up the constitution, and the UK government has also provided source code or design principles for many government projects). Scientific research projects and data management, etc.

Github based Agile development

This trick was discovered while looking through the Angular repository, and those familiar with JIRa-based Scrum agile development will be familiar with the following screenshots:

20170712149986235998178.png

20170712149986237747718.png

20170712149986238499373.png

Take a look at the Angular team and use Github for agile development or learning on individual projects.

About Agile Development:

Agile development typically takes place in a two-week cycle, called an iteration. Complete the estimated work quickly in an iteration. Our team’s Scrum Agile development steps are as follows:

1. Requirements clarification session: Clarify user requirements.

2. Iteration meeting: refine the core requirements, decompose each job, estimate the number of completed points (number of people × days), and record them into Jira for management after the meeting.

3. Stand-up meeting: Have a short meeting every morning where everyone talks about what they did yesterday, what they are going to do today, and what difficulties they have encountered. Synchronize the progress of corresponding tasks in Jira according to the content of the station meeting.

4. Review meeting: Have the leader evaluate the products made in this iteration, ask questions, and everyone say what the iteration gained or needs to improve

A simple case

For example, I currently have a repository on Github called Professional-Javascard-Demo, which I used to study advanced JavaScript Programming, a 25-chapter, 730-page book. Suppose I now count each chapter as an iterative (i.e., two-week) task, which is divided into reading the chapter and organizing the knowledge for the chapter. With this premise in mind, let’s leverage Github for agile learning.

First, create a project in the Projects TAB:

20170712149986669978066.png

20170712149986671943919.png

Once created, you should see this interface:

20170712149986672667718.png

Click Add Column to create three columns: Ready, In, and done:

20170712149986718719446.png

After creating it, it looks like jIRA, hahaha.

20170712149986739824407.png

To create a card task, click the + sign in the upper right corner of the preparation column to create a card task. Once created, click the drop down symbol in the upper right corner of the card and select Convert to Issue to create the associated issue.

20170712149986798815743.png

You can see the associated issue in the Issue TAB, as shown below. Follow the same steps to create a card called Chapter 6 Collation.

20170712149986847542235.png

There is an upper button on the mouse in the above figure; that’s right, this is equivalent to the milestone in Jira. In the milestone, we organized and finished the knowledge points in Chapter 6 as a milestone, indicating the completion of the whole chapter 6.

First click create Milestone:

20170712149986900319961.png

Then you can select the milestone end date here, for example I choose 16th:

20170712149986903110832.png

Create as shown in the figure:

20170712149986964914104.png

Then we need to associate the two issues with this milestone, click on the previously created issue and associate the milestone in the right bar:

20170712149986982724723.png

At this point, an agile development management tool like Jira is created.

Let’s say I’ve finished chapter 6, that is, I’ve completed one of the card tasks, and you can drag the card from Chapter 6 to completion in Projects:

20170712149987035333296.png

Then in the issue, click the white close issue button below to close the issue after reading chapter 6:

20170712149987040969645.png

Your milestones are automatically synchronized:

20170712149987047544171.png

This is a simple example of a Github based agile development process.

Refer to the article

  1. How to use GitHub?
  2. Jira-based Project management for Scrum Agile Development