分布式版本管理工具 ----git

简单的介绍一下git的使用以及一个小例子

git简介


a. git是目前世界上最先进的分布式版本控制系统(没有之一)。CVS及SVN都是集中式的版本控制系统。
b. 分布式与集中式的区别:
先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
这里写图片描述
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
这里写图片描述

安装


windows: 进入官网(https://git-scm.com/downloads),下载windows版本的exe文件,运行即可安装
这里写图片描述
其他系统的安装 https://www.liaoxuefeng.com/wiki
这里写图片描述

使用


本文以windows为例,远端服务器为码云([email protected])

1、 在系统中创建一个仓库: E:\aaa\repository
2、启动 Git Bash,并进入到新建的目录中。(之后所有的命令都在这个目录下执行
注意:
a. 目录的格式有变动,此处的git bash可以使用linux和window的命令
b. 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
这里写图片描述
这里写图片描述
3、 创建版本库:执行 git init 创建git版本库

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

4、 创建用户信息

git config --global user.name "zhangsan" // 名称最好跟git服务器上的信息一致
git config --global user.email "[email protected]"

5、 查看当前所有配置
这里写图片描述

6、 到这时本地的仓库信息已经可以使用了,例子: 上传文件夹、文件
注意:
a. 不管是创建文件还是文件夹,都必须在当前仓库目录下
b. 创建和删除文件的流程一样
这里写图片描述

7、 分支命令:
查看当前分支的状态git status
查看本地分支git branch / git branch -v
查看所有分支(包括本地分支和远端分支) git branch -a
创建分支git branch 分支名
切换分支git checkout 分支名
创建并切换分支git checkout -b 分支名
删除分支(不能删除当前分支) git branch -d 分支名 / git branch -D 分支名(强制删除)

8、 远程仓库相关命令
a. 获取远程仓库的地址:
这里写图片描述
b. 创建远程仓库与本机的信任: http://git.mydoc.io/?t=154712
c. 创建远程的映射
这里写图片描述
d. 建立远程仓库分支与本地分支映射
d1. 在本地创建远程仓库的分支映射git fetch origin master
这里写图片描述

d2. 将远程仓库和本地仓库关联(方便以后上传或者下载数据) git branch --set-upstream-to=origin/master dev
这里写图片描述

e. 从远程仓库获取数据
这里写图片描述

f. 将本地仓库数据上传到远程仓库
这里写图片描述

g. 远程仓库其他命令:
查看远程仓库的分支信息:git remote show origin
删除远程仓库的分支(dev)git push origin :dev
如果远程仓库的分支删除了,而本地的远程分支还存在映射git remote prune / git remote update / git remote prune origin --dry-run

参考资料如下:
https://www.jianshu.com/p/884ff6252be5
https://blog.csdn.net/qh_java/article/details/77853605
https://www.yiibai.com/git/git_fetch.html
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8
https://www.cnblogs.com/eoooxy/p/6075625.html

猜你喜欢

转载自blog.csdn.net/miracle_8/article/details/80437441