About the relationship between Git and GitHub

Introduction

** What is Git ** A tool for managing source code versions ** What is GitHub ** Web service that supports developers using Git

Git and GitHub are strongly related, and just because you're using Git doesn't mean you have to use GitHub. As we will see later, there are other Git hosting services besides GitHub.

History and convenience of Git birth

How was Git born in the first place? From that background, let's confirm the convenience of Git.

The creator of Git is ** Linus Torvalds , who created the Linux OS. Initially, he used a version control system called "BitKeeper" in Linux kernel development. I was looking for an alternative service because I couldn't use "BitKeeper" due to licensing issues, but none of my free version control systems could meet his high requirements. Therefore, Mr. Torvalds himself started development, and what was born there is " Git **". So what makes Git better than traditional version control tools?

The great thing about Git is that it's a ** distributed repository **. Traditionally there was only one repository overall, but Git has two, "local" and "remote". The advantage of this decentralized system is that when multiple system developments are performed, each developer writes the source code and adds it to the repository, so the more developers there are, the more ** the repository becomes. Inconsistencies ** increase the likelihood.

To prevent such repository inconsistencies, each developer records changes in the ** local repository ** on their own machine, sees the overall situation, and records the changes in the ** remote repository **. This has made it more convenient.

With unprecedented version control in a decentralized way, the concerns we had with traditional management tools have been dispelled and are still used in development to this day.

What is GitHub

The word Git gives the impression that it's a dedicated service, but there are other Git hosting services like this, and you don't have to use GitHub.

GitHub can perform version control using Git on the cloud, and has a function that makes Git even easier to use. Among them, the three functions ** "Fork", "Pull Request", and "Merge" ** improve convenience and are supported by many users.

--Fork: You can get (copy) someone's repository and modify it. --Pull Request: A function that allows you to request reviews from other members regarding changes in the source code that you have made. --Merge: Introducing a person's code into your own code.


"Fork" to fix the code and make a "pull request" to the owner. The owner who receives the "pull request" "merges" the code.


GitHub is also known as a place for social coding, where you can see the source code of others. This also makes it easier to develop in open source, such as participation in development and feedback, which is also an advantage of GitHub.

Typical Git hosting service used other than GitHub

The differences that are selected include the difference in hosting between the Web service type and the installation type, the difference in the corresponding VCS, the free private repository, and the fee format.

Summary

Git is a version control tool with the purpose of improving development efficiency by making it decentralized. GitHub is a service that uses it as open source to improve the convenience of team development and to form a community of engineers.

Reference article

ITmedia Enterprise https://www.itmedia.co.jp/enterprise/articles/0504/20/news075.html FERROWS https://job.fellow-s.co.jp/useful_info/feature_detail/Art-0488 Linix.com https://www.linux.com/

Recommended Posts

About the relationship between Git and GitHub
The subtle relationship between Gentoo and pip
About the difference between "==" and "is" in python
About the difference between PostgreSQL su and sudo
Investigating the relationship between ice cream spending and temperature
Investigate the relationship between TensorFlow and Keras in transition
[Statistics] Let's visualize the relationship between the normal distribution and the chi-square distribution.
Examine the relationship between two variables (2)
Examine the relationship between two variables (1)
(Important inner product in deep learning.) About the relationship between inner product, outer product, dot product, and numpy dot function.
I investigated the relationship between Keras stateful LSTM and hidden state
About _ and __
Relationship between netfilter, firewalld, iptables and nftables
What is the difference between `pip` and` conda`?
Relationship between Firestore and Go data type conversion
About the behavior of copy, deepcopy and numpy.copy
About the test
Summary of the differences between PHP and Python
The answer of "1/2" is different between python2 and 3
Let's visualize the relationship between average salary and industry with XBRL data and seaborn! (7/10)
About the * (asterisk) argument of python (and itertools.starmap)
About the queue
What is the difference between Unix and Linux?
Investigation of the relationship between speech preprocessing and transcription accuracy in the Google Cloud Speech API
Consideration of the difference between ROC curve and PR curve
The rough difference between Unicode and UTF-8 (and their friends)
Relationship between operators and special methods, try calling numeric methods
Can BERT tell the difference between "candy (candy)" and "candy (rain)"?
What is the difference between usleep, nanosleep and clock_nanosleep?
Think about the next generation of Rack and WSGI
I examined the data mapping between ArangoDB and Java
Visualization of the connection between malware and the callback server
How to use argparse and the difference between optparse
Personal notes about the integration of vscode and anaconda
Compare "relationship between log and infinity" in Gauche (0.9.4) and Python (3.5.1)
About Class and Instance
Sort the relationship between pitcher Masahiro Yamamoto and each team by janome and TF-IDF Cosine Similarity
Between parametric and nonparametric
About cumprod and cummax
About the Unfold function
About the service command
About the confusion matrix
About the Visitor pattern
About cross-validation and F-number
The relationship between brain science and unsupervised learning. Maximize information amount Unsupervised learning MNIST: Google Colabratory (PyTorch)
What is the difference between a symbolic link and a hard link?
Understand the difference between cumulative assignment to variables and cumulative assignment to objects
Find the most F-word commit on Linux (git and later)
I tried to enumerate the differences between java and python
The difference between foreground and background processes understood by the principle
Play with the password mechanism of GitHub Webhook and Python
Relationship between Bound / Unbound and initial value of Django2 Form