探索Git

git全部功能研究

Posted by Nathaniel on 2017-07-15

探索Git

用了这么多年的github,如今才发现,我对git的实际功能知之甚少,因此,今日就来研究研究git的用法,记录于此,方便我自己日后查阅,同时也方便其他打算了解git的朋友们。

Git是什么

Git是现今最常用的版本控制工具,“版本控制工具是什么?…”,什么?好吧,更新软件这件事大家应该都做过吧?软件大都有一个版本号,这个版本号就代表了软件的演进历程。每个版本的软件的代码都有不同,显然由人工来管理的话工作量会过大且容易出错,软件的体量越大时这一点越明显。说道这里自然要讲讲git起源了,Linus Torvalds大神在开发Linux的时候,考虑着这Linux和其他人一起开发,各自版本都不一样怎么工作,现有的版本控制工具都不能满足需求,那就自己写一个好了,于是Linus就随手写了一个。。随手写了一个,对,这就是神级开发者与我这样的搬砖码农的差距(捂脸)

基础git功能

安装

首先当然是要下载安装git了,这种事情自然要从官网进行,主流的三个平台都有支持。这里就不详述了。

创建新的仓库

万物从init开始,自然,假设我们要开始一个伟大的项目(虽然很有可能不了了之,但是不影响开始的时候的伟大性对吧),我们创建了一个文件夹,名叫great_project,伟大的项目,自然就要用最先进的技术了,那么如何进行项目的初始化呢?其实只要在great_project下敲下这行神奇代码即可:

git init

执行了这行命令之后,你就可以正式开始在这个文件夹下使用git的各项功能了,也就是说,这个文件夹已经算是一个git代码仓库了。如果观察够仔细的话,你会发现,在这个文件夹下其实多了一个隐藏的.git文件夹,里面存放着git的版本控制用的信息。要在一个文件夹下使用git,必须要执行这一步。

Copy别人的代码

刚刚从Github上看到一份特别有趣的代码(好像挺符合我的大作业要求的,哦不对,好像说漏嘴了),怎么弄到手呢?当然是抄过来了,哎?程序猿的事情怎么能说抄呢,这叫借鉴一下。这时候只需要使用一下的命令即可:

git clone 目标仓库位置

注意,这里的目标仓库位置可以使本地的一个git文件夹位置,也可以是远程的一个网络地址,比如username@host:/path/to/repository这样的。执行完这条指令之后,在当前工作目录下就会产生一份目标代码仓库的拷贝。

添加自己的代码

程序员退休了,拿起毛笔,兴致勃勃地写下一行工整的毛笔字Hello World。那么问题来了,他想把这刚写的这个hello_world.c添加入自己的git文件暂存区(index),他应该怎么做呢?当然又是一条新的指令了:

git add 目标文件名

说道这里,有人可能要问暂存区(Index)到底是什么。这里需要讲一下git的工作流程(workflow),简单来说,git的本地仓库下有“三棵树”,第一个是工作目录(Working Directory)里面存放着你的实际代码文件,第二个就是暂存区(Index)了,它相当于一个缓冲区,里面存储着工作目录文件的变动信息,第三个是头指针(Head),它指向着你最后一次的提交(commit)。

PS:最近比较忙,本文不定期更新,暂时未完成。