本文目录:
git安装
git配置
git基本使用
git与svn区别
在ubuntu中使用命令安装如上图
配置相关文件
# 1.查看配置文件git config --system -l # --system表示系统配置 -l表示listgit config --global -l # --global 表示用户配置
查看配置命令的原理是读取相关的配置文件并输出在命令行中
例如:git config --global -l 会去用户目录下的.gitconfig文件取内容。
特殊情况下,查看配置报错如下:
在报错信息中会出现无法读取配置文件,这就充分说明了,查看配置的命令确实是读取配置文件的操作。既然是读取文件的操作,如果出现上面的无法读取现象,就可以去相应的目录下创建文件,进行相关的配置。
git配置
下载好git之后首先要做的就是配置,并不是说不配置就不能使用,而是为了更好的使用git而配置。
配置类型有很多,比如说系统级的,用户全局级的以及本地仓库级别的等等。git使用一系列的配置文件来保存用户的定义。这里先说用户的全局配置(.gitconfig文件)。优先级:worktree > local > global > system(先做了解)。
.gitconfig用户全局配置,这个是首先要配置的,里面主要是用户信息(名字name和邮箱地址email)等等。在项目开发过程中,参与项目的往往是一个团队,当然,如果是一个人开发就没必要配置这个文件了。这个文件里的信息用来标识用户,用来标记是谁创建写入或者修改了代码。否则当发现代码被改动之后还要去挨个问是谁操作了代码,会很麻烦。
方法一:
在用户目录下(`~/`)创建或者打开.gitconfig文件,然后在文件里面写
配置信息。在ubuntu中使用vim打开,写入如下最基本的信息:
方法二:
使用命令添加配置信息。如下命令添加用户配置信息并查看
git基本使用
1.创建git仓库(涉及命令行cmd命令)
mkdir base-use # 创建base-use目录cd base-use # 进入创建好的目录中git init # 初始化目录 使其变成一个仓库ls -a # 查看当前目录下的所有文件和目录(包括隐藏目录)# 此时能看到.git文件就说明仓库已经创建完成# 仓库就是比普通的目录多了一个.git目录
2.添加文件到仓库
git add . # 添加所有文件和目录到暂存区并建立跟踪 (注意add后面的".") # 建立跟踪之后 就知道当前文件的状态 改变 等等git filename1 [filename2 ...] # 将指定添加到暂存区并建立跟踪 # . 表示所有,也可以指定 文件git status # 查看当前工作空间 暂存区 以及仓库的状态git commit # 将 暂存区的文件和目录提交到仓库 # 如果没有提交说明会打开一个文件 并告诉你 添加提交说明git commit -m "messege" # -m(即messege)表示添加备注信息和提交说明
git commit
git commit -m "first commit"
这样我们就把创建的两个文件one.py 和 two.py提交到了仓库。
git and svn
版本管理三种方式:
本地版本管理(手动)
首先创建了一个爬虫项目(crawl_boss爬BOSS直聘),然后开始写代码,从最开始的基本实现,到最终的scrapy实现。在本地进行手动版本更新和迭代,这就是本地版本控制。
集中式版本管理(svn)
描述:这是一个有5人的团队,中间的是云服务器,每个人写完代码之后就把代码上传到云服务器。
优点:每个人直接取云服务器上的代码,然后进行修改或者添加功能,再上传到云服务器,相当方便。
缺点:a.必须联网才可以去云服务器取代码,如果没有网络则无法工作;b.如果服务坏掉,则整个项目又需要从头再来,搞人心态等等。
举例:一个班级(30个学生)只有有一个老师(云服务器),学生找老师问题就相当于团队成员取代码。如果小王正在问老师,则李明就需要等待到老师解决了小王的问题;如果老师生病了(云服务器坏了)那么班级学生的问题就没有人解决了。
分布式版本管理(git)
优点:相对于集中式,团队成员可以在网络通畅时将代码从云服务器下载到本地的仓库,然后在没网的情况下进行开发并提交到本地仓库,等到有网时在把本地仓库的代码上传到云服务器。此外,当云服务器崩溃时,可以去其他成员那里把代码克隆过来,或者把成员仓库的代码克隆到另外一个云服务器上便可继续正常使用。不会存在没有网络就不能工作的情况。
举例:一个班级(30个学生)一个老师(云服务器),小王除了可以问老师题之外,还可以问其他同学。当老师生病时,同学之间也可以自行解决问题。
svn和git的优缺点和区别,在熟练掌握了git之后会有更深层次的体会。
说明:之前提到的git全未涉及远程仓库。而git的功能不仅仅是管理本地仓库,还有和远程仓库(云服务器)搭建之后的操作,这将在接下来的文章说明。
- EOF -