As we know,
Git has been widely used among software programmers. It is free and open-source. Also, it’s powerful by its distributed nature, fast operation and branch handling mechanism. The distributed property makes it easy and efficient for multiple developers to work together, towards the same project. In addition,
Git works fast with its lightweight operations. Lastly, every developer can work with the code as its own branch. Others can merge different branches, which makes cooperation-work quite easy.
Github is a web-based Git repository. It is also called remote repository, compared to the local repository. Firstly, it provides web-based GUI and desktop GUI, as well as mobile integration. Also, it provides access control and other features for collaboration. Because of these, it is very useful for bug tracking, task management for every project.
Github, they do have close connections with each other. And we can use different commands to make them connect. For more command options, go to my previous
Git tutorial. Before that, you may also need to install
Git and set up
Github. For instructions on this, you may refer to my previous article Git clone repository example.
In this article, we will focus on a very important
git clone. This command will clone/download a repository from
All the examples below is shown in MacOS EI Capitan Version 10.11.5 and the Git version is 2.7.4.
2. Git clone version example
2.1 git clone command
git clone is a very important command. You can understand it as cloning/downloading a repository into a new directory from a remote server, like
Github. Hence, we can use this command to connect to
Github, based on knowing the project git link.
To make it clear how it works, I’ll show you with an example. For instance, you may interest in the Datastax Java driver for the NoSQL database Apache Cassandra. You can go to the
Github link https://github.com/datastax/java-driver. Below this figure shows how it looks for our project.
Then, if you need to download it and work on this project on your local machine. You can use
git clone command. To make it work, you need to figure out the
git link for this project. For this project, the
git link is https://github.com/datastax/java-driver.git. The position of this link which you can copy is below with the blue part marked.
Then, open the terminal on your computer and go to the directory that you want to save this project. Type
git clone https://github.com/datastax/java-driver.git. Then, it’ll download this project to your local machine like below:
WXMs-MacBook-Pro:~ WXM$ git clone https://github.com/datastax/java-driver.git Cloning into 'java-driver'... remote: Counting objects: 50300, done. remote: Total 50300 (delta 0), reused 0 (delta 0), pack-reused 50299 Receiving objects: 100% (50300/50300), 20.78 MiB | 266.00 KiB/s, done. Resolving deltas: 100% (21551/21551), done. Checking connectivity... done.
Then, you can go to the directory of the project. Furthermore, you can check the status with command
git status. It works like below:
WXMs-MacBook-Pro:~ WXM$ cd java-driver/ WXMs-MacBook-Pro:java-driver WXM$ git status HEAD detached at origin/3.0 nothing to commit, working directory clean
The status shows that the current HEAD is at remote repository origin on branch 3.0.
2.2 git clone version
Normally, when we work on a project, we may have multiple versions. These versions may have different functions to work on.
Git also support for multiple versions. And it makes version-control very convenient. So we still take the Datastax Java driver as an example.
In our previous command, when we clone with the
git link, we clone all branches. With the usage of command git branch -a, you can get the list of all branches in this project. Similarly, you can see our example below:
In the figure above, you may find out different numbers like 1.0, 2. 0, 3.0 etc. Actually these are the branches for this project. You can also click the branches like below to see the detailed information of different branches.
From the figure above, we can see that current branch is 3.0. Also, if you’re careful enough, you may find there’s a tags tag belong with the branch tag. You can click the branch tag and find the tags tag. You can check it like below:
Here, under the Tags tag, you can find the version number like 3.0.0, 3.0.1 and 3.0.2. Normally, the version comes from 1.0 to up, like 2.0, 3.0. And these changes normally are big changes. Then some other version name changes like 3.0.1 to 3.0.2 is just small bugs improvement or modification.
So normally, the branch is kind of like a big branch with different versions. For example, in branch 3.0, it has version of 3.0.1, 3.0.2 and 3.0.3 etc. With these branches and version tags, it’s very convenient for us to manage the whole project. You can check the whole version number with
git tag command:
WXMs-MacBook-Pro:java-driver WXM$ git tag 1.0.0 1.0.0-beta1 1.0.0-beta2 1.0.0-rc1 1.0.1 1.0.1-dse 1.0.2 1.0.2-dse 1.0.2-dse2 1.0.3 1.0.3-dse 1.0.4 1.0.4-dse 1.0.5 1.0.5-dse 1.0.6 1.0.6-dse 1.0.7 1.0.8 2.0.0 2.0.0-beta1 2.0.0-beta2 2.0.0-rc1 2.0.0-rc2 2.0.0-rc3 2.0.1 2.0.10 22.214.171.124 2.0.11 2.0.12 126.96.36.199 188.8.131.52 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 184.108.40.206 220.127.116.11 2.1.0 2.1.0-beta1 2.1.0-rc1 2.1.1 2.1.10 18.104.22.168 22.214.171.124 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 126.96.36.199 2.1.8 2.1.9 2.2.0-rc1 2.2.0-rc2 2.2.0-rc3 3.0.0 3.0.0-alpha1 3.0.0-alpha2 3.0.0-alpha3 3.0.0-alpha4 3.0.0-alpha5 3.0.0-beta1 3.0.0-rc1 3.0.1 3.0.2 cassandra-driver-parent-2.0.9
Furthermore, if you want to go to specific branch with specific version, you may use the following command with
git checkout with the version number. For example, we might want to go to the version of 3.0.0-rc1. Then with the following command, we can accomplish this:
WXMs-MacBook-Pro:java-driver WXM$ git checkout 3.0.0-rc1 Previous HEAD position was 8fc9511... Update contribution guidelines HEAD is now at d858301... [maven-release-plugin] prepare release 3.0.0-rc1
This means that we’re under the repository of version 3.0.0-rc1. Right now you see how easy it could be to manipulate the versions and branches.
With the default version-control property,
Git makes it very easy to work on different versions and branches. Hence, this makes convenient for us to manage our project. With the command
git checkout, we can switch between different version and branches. So, let’s start and work on our own project with different versions:)