Cent_os_7系统下git环境搭建

环境:Cent_os_7系统 ,SoureTree ,Xshell5

本案例是在虚拟机下安装Cent_os_7系统搭建git环境用作服务端,实现本地与服务端的数据传输。

1.服务端git环境搭建。


首先在虚拟机中打开运行系统,登陆后输入:

yum install git

(这里可以用xshell5连接服务端进行git环境搭建)

然后会有安装过程的进度显示

再次输入:

yum install git
会显示已安装

这里服务端的git环境已经搭建好了。

2.本地git环境设置

可以用gitbash敲命令行进行控制,我是安装了一个SoureTree软件,安装教程网上搜索一下有很多,这里就不做介绍了。

先来说一下SSH密钥的使用,通过密钥可以不用输入密码来进行文件推送拉取。步骤也很简单,打开sourcetree点击工具

初始的时候工具第二行是生成或添加SSH密钥,这里不建议使用这个生成密钥,因为太慢了,点击命令行模式

会跳出类似gitbash的命令行窗口,输入: 

ssh-keygen -t rsa

这里第一个要输入的是密钥保存地址,我是直接空格过去保存在默认地址的,知道在哪里就行了,然后输入密码,再次输入密码,我没有设置密码,直接空格两下过去了

会有一个密钥生成的图形,说明密钥已经生成了,然后找到密钥所在的文件夹,也就是密钥保存的地址,可以看到两个文件

id_rsa.pub 是公钥,id_rsa 是私钥,找到后切换到souretree,打开工具->选项ssh客户端配置

将公钥私钥都导进去,然后点确认就行了。接下来我们再切换到服务器配置密钥,cd root 根目录下输入:

mkdir .ssh

创建密钥文件目录

然后打开文件传输进入到.ssh文件目录下,将之前生成的公钥传到这个目录下,然后改名为authorized_keys,这里解释一下,因为服务器读取公钥是读取的这个文件名下的,可以在服务器etc/ssh/sshd_config查看配置文件,右键打开这个sshd_config文件

可以看到这个配置信息:AuthorizedKeysFile .ssh/authorized_keys

进行到这里的话,密钥登录就已经配置好了,若想在xshell5用这个密钥来登录服务器需要配置一下

右键服务器名选择属性

用户验证这里选择密钥选项,点击浏览将之前生成的私钥导入就行了

然后就可以用这个密钥登录服务器了。

3.git仓库搭建

在服务器上创建git仓库的文件目录,然后进行初始化

mkdir git
cd git
git init

这样服务器的git仓库就创建好了,可能会出一些问题,输入

git branch
查看一下有没有生成默认分支,若是没有生成的话需要进行添加提交的动作,随便拖一个文件,或着仓库里有文件,做一次 addcommit操作就可以了

git add .
git commit -m "first "

然后可以发现会生成一个master分支,接下来可以在sourcetree克隆服务端仓库到本地了

xshell5的地址栏有个地址,我的是ssh://[email protected]:22

把这个地址复制下来

打开sourcetree点击克隆

把地址粘贴到源路径,后面跟上服务端git仓库的地址/home/git,然后写上本地仓库的目标路径,然后点克隆就行了

这就是克隆完成了,不过可能还会有个推送的问题

[remote rejected]master -> master (branch is currently checkedout)
remote: error: refusing to update checked out branch:refs/heads/master
remote: error: By default, updating the current branch in anon-bare repository
remote: error: is denied, because it will make the index and worktree inconsistent
remote: error: with what you pushed, and will require 'git reset--hard' to match
remote: error: the work tree to HEAD.
remote: error:

...

出现这种情况的话需要找到服务端git仓库下的配置文件.git/config

右键打开编辑

在下面加上这行

[receive]
    denyCurrentBranch = ignore

然后保存就可以推送了

这就推送完成了,或许还会有个问题,你在服务器端可能看不到你刚才推送的更新,这个时候你需要看一下缓存区的状态

git stash

若是已经在你刚提交的这个状态了,说明就推送到了,若是没有,那就输入

git log

查看一下版本,然后输入

git reset --hard <-版本编码->

定位到推送的版本,这样就可以查看刚才的推送了。对于无法及时检出推送的问题可以查看我的这篇博客点击打开链接

你可能感兴趣的:(git)