【Git零基础教程】(1)介绍/创建

版本控制系统(Version Control System,VCS)可以分为集中式(Centralized Version Control System,CVCS)与分布式(Distributed Version Control System,DVCS)两大类。
它们的区别主要在于版本管理数据库存在的位置。

如图所示:
这里写图片描述

集中式的版本数据库只存在于服务器上,而个人这里仅仅只有一份文件。

而分布式的版本数据库则存在于每一台电脑上:
这里写图片描述

而且每个版本数据库都是同等的,没有主副之分。服务器上有时只有版本数据库而没有实际文件。

Git就是一个非常热门的分布式版本控制系统。

它和众所周知的Github有什么区别呢?
Github是基于Git的,它的额外作用主要有两个,一是提供了服务器让所有用户可以在其上存放Git的数据,二是提供了GUI的网页端/PC端方便进行一些操作。

如果你的需求特别特别的简单,Github的GUI就能满足的话,那你没有必要学Git,也没有必要看下去了。但是如果你的需求稍复杂一些,GUI就不够用了,这时候就需要使用Git命令行操作。


安装

推荐还是通过Github客户端来使用Git比较方便。

Windows:
安装完Github客户端后,还会“附赠”一个Git Shell,相当好用。

macOS:
安装完Github客户端之后,在软件的偏好设置(Preference)中
这里写图片描述

然后就可以在Terminal或者第三方的iTerm2中使用了。
我另外有一篇关于zsh、iTerm2的文章,可以让你得到一个非常棒的命令行环境,有兴趣的可以去看看。


Config

虽然现在还不用配置config文件,但是先简单介绍一下。
Git的config文件一共有三个等级:
1. 系统级的config文件在/etc/gitconfig 当你使用git config –system时,它会读写该文件。它对整个系统生效。
2. 全局级的config文件在~/.gitconfig或~/.config/git/config 当你使用git config –global时,它会读写该文件。它对当前用户生效。
3. 目录级的config文件在git目录下.git/config 你的所有的使用了git的目录下都会有一个。当你直接使用git config时,会读写该文件,仅对当前git目录生效。

在windows系统上,全局级的一般在C:\Users$USER.gitconfig
系统级的位置不定,我的PC上在C:\Users$USER\AppData\Local\GitHub\PortableGit_f02737a78695063deace08e96d5042710d3e32db\mingw32\etc

另外,作用域越大,优先级越低。也就是说系统级<全局级<目录级。当某项配置在各级config中重复出现时,将使用优先级高的文件中的。

你可以使用
git config --list
来显示当前所在目录的配置情况,它会显示各级config文件在当前目录中叠加后的效果。


创建

那么如何创建一个git仓库呢?

这里我们先假设你需要用Git进行多人协作,也就是需要在服务器上建立仓库,如果只是本地使用的话可以更简单(git init即可)。

首先你需要在Github网站上(或者其他类似网站,之后均用Github为例)新建一个库,然后它会提示如下信息:
这里写图片描述

记作图1。

然后我们分场景讨论:

1. 从一个空的工程开始

1.1 图1中第一条点击一下即可,它会直接打开客户端进行clone,你直接在客户端中也能找到clone的按钮。

1.2 使用clone命令
git clone <url> <your_name>
即Github给出的地址,是用来指定将要创建的目录的名称,你可以省略它,Git将使用仓库名作为目录名称。

1.3 图1中第二条也是从空的工程开始,但是它就看起来比较复杂了,它的具体含义我们留到后面再讲(大概在第四章左右吧),这边就注意一下git init命令,在你的文件夹根目录下使用该命令就可以让它成为git工程。你只要在命令行中先mkdir xxx,再cd xxx,然后按照上面的依次输入命令就可以了。

以上方法的效果都是一样的。还是先使用1.1或者1.2这种简单的吧。

2. 从一个本地已有的工程开始

2.1 一个简单的方法是你可以按照1.的步骤创建一个空的工程,然后把你本地的文件拷贝进去。

2.2 用命令行也可以,上面图1中的第三条的命令要成功需要两个前提条件,一是本地已有的工程已经是一个git工程(根目录下拥有.git文件夹),二是它的git remote中不含有origin这个remote。一般不能满足这两个条件。
所以如果你本地的工程还不是一个git工程,应该使用如下命令

cd 根目录
git init
git add .
git commit -m "first commit"
git remote add origin <url>
git push -u origin master

其实跟上面图1中第二条的命令差不多,只不过这里上传了所有文件,如果你已有的工程大小很大的话不要用这句:
git add .
不然上传要很久,还是先换成老样子

echo "# README">>README.md
git add README.md

等学了.gitignore相关的内容后再来上传吧。

3. 从一个网络上的工程开始

其实(1)也可以算是网络上的工程,这里我们不考虑自己的工程(直接按1.1或1.2 clone即可)。我们考虑Github上一个别人的工程的情况。
如果该工程你只是想本地使用,那也只要简单地clone下来即可。
但是如果你想要进行多人协作,或者说上传到Github,那么:

3.1 使用fork:
这里写图片描述

它将拷贝一份一样的代码到你的Github空间中。然后你再clone自己空间中的工程即可。

3.2 还有一种比较繁琐的方法:
先clone到本地,然后在自己的Github上创建一个空的工程,然后

git remote add mygithub <url>
git push -u mygithub master

其实这跟前面图中的第三条道理是一样的。它的好处是可以把原地址也加到git remote , 方便更新(后面章节会有一个本方法的使用例子)


如果你到这已经看晕了,不要担心,只要会1.1、1.2、2.1、3.1这些即可,剩下的不妨回头看或者不看了…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值