Git安装与配置

一、集中式版本控制系统

1.所有的客户端不能直接相互通信(交换代码),必须经过服务端才能交换代码

2.所有的”版本控制文件”都保存在服务端。一旦服务器宕机,客户端不能进行版本回滚。

 

二、分布式版本控制

1.所有客户端可以不用和服务器进行交互,尽可以实现客户端之间的交换代码

2.在所有的客户端都有记录的代码版本,不用服务端,就可以进行版本回滚

 

 

其它区别

  1. git每个历史版本存储完成的文件,svn存储的是文件差异

2.Git可以离线完成大部分操作,svn则相反。

3.git 分支和合并能力更好

5.git有更强的撤销修改和修改版本历史的能力

 

Git的工作流程如图

 

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

 

创建Git仓库的方法分为两种:

  1. git init :将一个目录初始化一个仓库
  2. git clone:将一个已经有的目录克隆到另外一个位置

 

仓库又分为两种:

第一种是

裸仓库:不带工作区。生成的文件没有在.git目录当中

git init –-bare 目录名称 

第二中就是:

    带工作区的目录:生成的文件在.git目录当中

    git init 目录名称

 

 

三、使用模式

1.对于开发人来将,一般会在自己本地创建一个本地库。然后通过公网在GitHup上申请一个git账号。

    然后在上边创建仓库,然后在将本地的仓库和Githup上的仓库做”关联”。这样本地和远程就可以同步了。那么开发人员申请公网githup的作用就是:

  1. 作为自己本地库的备份
  2. 还可以让其他人通过公网的仓库共享本地仓库的代码。

 

  1. 对于上述的情况,存在一定的问题。
  1. 代码公开在了githup上,还有一部分收费
  2. 如果断网了,数据就不能同步到公网了,其他人也就无法通过公网的仓库来共享代码了。

 

四、搭建git服务器

GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
搭建Git服务器需要准备一台运行Linux的机器。

 

环境:

操作系统                IP                     角色

Centos6.5          192.168.3.10            git-server

                          192.168.3.11           git-client1

                          192.168.3.12           git-client2

 

Git-server:在内网搭建的git服务器

Git-client1:在内网的开发人员A

Git-client2:在内网的开发人员B

 

 

1.在设置git仓库之前,需要为仓库设置用户名和邮箱。否则在提交文件的时候会提示你设置。这个邮箱和名字会标识客户端的身份。

[root@a ~]# git config --global user.name "git_test"

[root@a ~]# git config --global user.email "git_test@163.com"

 

查看配置

[root@centos6 ~]# git config --list

user.name=git_test

user.email=git_test@163.com

 

 

2.创建一个版本库,选择一个系统目录

[root@a ~]# useradd git

[root@a ~]# passwd git

[root@a ~]# chown -R git:git /git

[root@a ~]# mkdir /git

 

初始化这个目录为git可以管理的仓库.

[root@centos6 /]# git init --bare /git/

Initialized empty Git repository in /git/

 

查看git目录下有很多文件和目录。他们并没有生成在.git的隐藏目录下。这说明我们创建的是一个裸仓库

[root@centos6 /]# ls /git/

branches  config  description  HEAD  hooks  info  objects  refs

 

执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。

 

 

 

 

在windows客户端商安装git。我们主要以linux为例子。因为windows的命令行和linux上的操作一致。所以在这里简单的介绍windows如何安装

Git-2.15.1.2-64-bit.exe

安装完毕之后,在客户端出现了

git GUI Here :图形化

在客户端克隆远程仓库,

 

1.e盘创建一个目录,命名为git_test1.

2、克隆远程仓库,到本地的e:\git_test1

git clone git@192.168.3.1:/git e:\git_test1

3.进入到目录下,添加test.txt为要提交的文件

cd e:\git_test1

git add test.txt

git commit -m '初始状态'

 

五、使用git

我们在3.11上克隆一份git服务器上的仓库。

  1. 仓库克隆准备

为了方便和git服务通信。我们3.11生成密钥对,通过git用户使用密钥对和服务器通信。我们将公钥发送给git服务器。

(1)生成密钥对

ssh-keygen -t rsa

(2)将公钥发送给git服务器

ssh-copy-id -i /root/.ssh/id_rsa.pub  git@192.168.3.10

(3)修改git(3.10)服务器的配置文件

 vim /etc/ssh/sshd_config

AuthorizedKeysFile     /home/git/.ssh/authorized_keys

 

  1. 克隆服务器的git仓库(3.11)

mkdir /test.git

克隆.10上的名称为git的仓库

git clone git@192.168.3.10:/git /test.git

[root@centos6 ~]# cd /test.git/

 [root@centos6 test.git]# ls -a

.  ..  .git

 

  1. git常用命令

cd /test.git/

touch test

echo "123" > test

 

添加文件到暂存区

git add test

 

添加所有文件到缓存区域

Git add –A

在暂存区中删除某个文件,但是本地不删除

git rm –cache test

 

查看暂存区中的文件

git status

# Changes to be committed:

#   (use "git rm --cached <file>..." to unstage)

#

#   new file:   test

 

提交文件

git commit -m '初始状态'

1 files changed, 1 insertions(+), 0 deletions(-)

 create mode 100644 aa

 create mode 100644 test

已经提交成功

 

 

五、版本回滚

1.查看文件提交的记录git log

[root@centos6 test.git]# git log

commit c9433ebcbb0f66d41cbe9d834e366cc12a5008aa

Author: client1 <client1@163.com>

Date:   Wed Jul 18 19:17:34 2018 +0800

 

    delete all

 

commit 4b68920e3158affff6ec6b7d0ef769539e5a4da9

Author: root <root@centos6.5-2>

Date:   Wed Jul 18 19:13:43 2018 +0800

 

初始状态

 

 

如果信息过多的话,我们可以加上--pretty=oneline

[root@centos6 test.git]# git log --pretty=oneline

c9433ebcbb0f66d41cbe9d834e366cc12a5008aa delete all

4b68920e3158affff6ec6b7d0ef769539e5a4da9 初始状态

 

只显示版本号和提交信息

 

版本回滚的方法:

第一种:git reset --hard HEAD^

HEAD^ 代表上一个版本

HEAD^^ 代表上上一个版本

HEAD^^^代表上上上一个版本

如果是上100个版本就是 HEAD~100

 

第二种: git reset --hard 4b68920e3158affff6ec6b7d0ef769539e5a4da9

回滚到指定的版本

 

 

2.我们还可以查看git的命令历史记录

git reflog

根据命令历史记录来进行回滚

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值