统信下安装及使用GIT
Posted 左直拳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统信下安装及使用GIT相关的知识,希望对你有一定的参考价值。
一、安装
统信源自或曰改自Debian的分支,用apt进行包管理 。yum 是红帽和centos 分支使用的包管理。
sudo apt install git
git --version
二、应用
1、将账号及密码写进凭据文件
我们每次去访问git服务器的时候,其实都需要进行身份认证。有2种方式,一种是密钥,将自己机器(即客户端)上生成的密钥文件内容粘贴到git服务器里,这个需要有邮箱账号。另一种方式是凭账号和密码。可以将账号和密码存储下来,省得每次都要输入,效果跟第一种是一样的。windows和linux两种操作系统下的GIT我都用了一下,windows的用第一种,因为有个git bash工具,可以生成这个SSH证书,将里面的内容粘贴到git服务器就好了。这个内容是啥呢?我估计是个公钥。详见 visual studio2017应用GIT
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
果然是粘贴公钥。那么原理就很明显了,我们拉取或提交代码前,先将自己的信息用私钥加密,发给git服务器,git用公钥解密,完成身份认证,建立连接,然后开始传输。传输估计不用非对称加密,否则速度很慢,应该是对称加密,可能就在建立连接时服务器生成了密钥。
但在linux下,想用用账号密码方式。可能SSH协议配置比较麻烦。
首先生成凭据文件。在根目录下,
cd ~
vi .git-credentials
vi其实就是命令vim,linux下一个常用的编辑文本命令。进入以后,还是只读状态,按下小写“i”键,进入编辑模式,输入代码地址及用户、密码信息,类似:
https://用户名:密码@服务器IP:服务器端口
然后按ESC键退出编辑状态,输入 :wq
保存并退出。生成了文件 .git-credentials。接着运行
git config --global credential.helper store
生成了一个文件 .gitconfig:
ls -a
vi .gitconfig
打开来看,内容如下:
这样就代表准备就绪了。
2、git初始化
首先创建一个文件夹,用来存放代码
mkdir code
然后进入该文件夹,执行git 初始化
cd code
git init
这样就初始化好了。
3、指向远程分支
chenqu@chenqu-uos:~/projects/gzdd$ git remote add origin http://192.168.0.32:10615/opencloud/open_cloud.git
chenqu@chenqu-uos:~/projects/gzdd$ git remote
origin
origin就代表远程库了。
4、建立本地分支
按照我的习惯,本地建立2个分支:
1)develop
2)chenqu
其中develop负责与远程库交互,拉取和推送,是个中转站。chenqu才是我的开发库。开发库首先提交到这里来,然后合并到develop,再从develop推送到远程库。拉取也一样,先从远程库拉取到develop,再合并到chenqu。详见visual studio2017应用GIT
//首先看看远程有啥库
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git remote show origin
* 远程 origin
获取地址:http://192.168.0.32:10615/opencloud/open_cloud.git
推送地址:http://192.168.0.32:10615/opencloud/open_cloud.git
HEAD 分支:master
远程分支:
gzdd 新的(下一次获取将存储于 remotes/origin)
gzdd-develop 新的(下一次获取将存储于 remotes/origin)
gzdd-test 新的(下一次获取将存储于 remotes/origin)
hyzx 新的(下一次获取将存储于 remotes/origin)
master 新的(下一次获取将存储于 remotes/origin)
//将develop指向合适的分支
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git checkout -b develop origin/gzdd-develop
fatal: 'origin/gzdd-develop' 不是一个提交,不能基于它创建分支 'develop'
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git pull
remote: Enumerating objects: 72, done.
remote: Counting objects: 100% (72/72), done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 7387 (delta 12), reused 2 (delta 0), pack-reused 7315
接收对象中: 100% (7387/7387), 143.07 MiB | 11.13 MiB/s, 完成.
处理 delta 中: 100% (1941/1941), 完成.
来自 http://192.168.0.32:10615/opencloud/open_cloud
* [新分支] gzdd -> origin/gzdd
* [新分支] gzdd-develop -> origin/gzdd-develop
* [新分支] gzdd-test -> origin/gzdd-test
* [新分支] hyzx -> origin/hyzx
* [新分支] master -> origin/master
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。
git pull <远程> <分支>
如果您想要为此分支创建跟踪信息,您可以执行:
git branch --set-upstream-to=origin/<分支> master
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git checkout -b develop origin/gzdd-develop
正在检出文件: 100% (2807/2807), 完成.
分支 'develop' 设置为跟踪来自 'origin' 的远程分支 'gzdd-develop'。
切换到一个新分支 'develop'
//建立本地分支chenqu
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git branch chenqu
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git branch
chenqu
* develop
chenqu@chenqu-uos:~/projects/gzdd/cloud$ git pull
已经是最新的。
chenqu@chenqu-uos:~/projects/gzdd/cloud$
这中间出了个问题,说什么 fatal: ‘origin/gzdd-develop’ 不是一个提交,不能基于它创建分支 ‘develop’。也许是GIT还没反应过来,或者缓存啥的没更新,不认这个origin。这时运行一下 git pull 就好了。
至此,统信下的GIT安装及部署完毕。
以上是关于统信下安装及使用GIT的主要内容,如果未能解决你的问题,请参考以下文章