<细致>git是什么以及git的简单上手入门

我觉得 使用git命令 是身为一名计算机科班出身的人基本技能之一吧。这连能力都算不上。就像打穿越火线的都会摁R换弹夹但不是所有人都会二段跳。二段跳就是能力问题了。

1.git是什么?

git是目前世界上最先进的分布式版本控制系统。

2. git从何而来

  众所周知,1991年linus编写并开源了Linux操作系统,一直到2002年,linux的前进发展都是世界各地的志愿者把源代码文件通过diff的方式发给linus,然后linus本人通过手工方式合并代码。

  到了2002年linux社区采用了一个商业的分布式版本控制系统BitKeeper,BitKeeper给了linux社区免费使用权,linux社区中一些人试图破解BitKeeper的协议,2005年开发samba的andrew的"逾约"行为被BitKeeper公司发现了,BK公司要求收回linux社区免费使用权,哼老子免费给你用你还干这么不要脸的事老子不干了。此时linus没有向BK公司道歉,花了两周时间自己用c写了一个分布式版本控制系统,也就是Git。过了一个月,linux系统的源码就已经由git来管理了。

  此后git迅速风靡世界,2008年github上线,为开源项目免费提供git存储,无数开源项目开始移到Github,包括jQuery,PHP,Ruby等等。

3.集中式版本管理系统 vs 分布式版本管理系统

https://www.liaoxuefeng.com/wiki/896043488029600/896202780297248

4.安装Git

在linux上安装Git

$sudo apt-get install git

 在windows上安装Git

从Git官网下载安装程序进行安装,安装成功后需要进行初始化设置,因为git是分布式版本控制系统,每个机器都必须自报家门:你的名字和email地址。

$git config --global user.name "xxxxx"
$git config --global user.email "xxxxxxxxx"

在MacOS上安装Git

Xcode集成了Git,直接用Xcode的命令行就行。

 5.版本库(仓库)创建

即repository的创建,repository里的所有文件都可以被git管理起来,每个文件的修改删除Git都能跟踪以便任何时刻都能追踪历史或者在将来某个时刻"还原"。

第一步,创建一个本地目录,如果已经有了可以忽略这一步。

$ mkdir git_test
$ cd git_test
$ pwd
/Users/Dynmi/git_test

ok,这个repository位于笔记本的 /Users/Dynmi/git_test

第二步,通过git init命令把这个本地目录变成git可以管理的repository。

$ git init
Initialized empty Git repository in /Users/Dynmi/git_test/.git/

.git目录是git用来跟踪管理这个repository的。

上面说的是自己从零在本地创建一个新的版本库的方法。然而我们大多都是通过网络从远程把版本库clone到本地机器上,使用git clone命令。

6.添加文件与删除文件

 

这里我们编写一个readme.txt文件,内容如下:

Linus,who developed git,is a great developer.
I admire him.

首先把readme.txt文件,也就是我们要添加的文件放到repository中也就是/git_test目录下,然后告诉git,我们做了把文件添加到repository的操作。

$ git add readme.txt
$ git commit -m "wrote a readme file"

git add命令,后面输入的是添加的文件名,可以一次提交一个文件,也可以多个,如

$ git add file1.txt file2.txt

如果删除了一个文件,则使用与git add <file>完全相反的git rm <file>命令将工作区内容提交到暂存区,再git commit将暂存区修改提交到当前分支。

git commit命令,-m后面输入的是本次提交的说明。

至此,git入门成功。学到三个helloworld级别的命令,分别是

git init

git add <file>     所有文件无论是第一次添加还是后期修改,都要在操作完后使用git add入库

git commit -m <message>  提交做的修改操作

7.管理修改,撤销修改,删除文件

提交文件添加后如果再行修改这个文件,修改后需要提交更改,具体操作如下:(承接上文readme.txt)

$ git add readme.txt
$ git status

On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

$ git commit -m "readme.txt modified"

[master 5e92616] readme.txt modified.
1 file changed, 1 deletion(-)

$ git status

On branch master
nothing to commit, working tree clean

使用git status命令可以查看目前待提交的添加修改操作,上文我们做了git add命令之后如果git status可见git add命令后尚未提交的修改。

对于所有做过的commit提交,可以通过git log命令查看。

 

下图是一个全面的git命令总结 

posted @ 2020-01-26 13:21  dynmi  阅读(315)  评论(0编辑  收藏  举报