一 gitlab配置
1 创建ssh-key
首先下载git,地址: https://gitforwindows.org/ ,默认安装即可。
安装完毕任意位置鼠标右键,打开git-bash (是一个win下类unix风格的命令行,支持部分指令)
输入 ssh-keygen.exe
回车回车回车 (中途会问你保存位置,取什么名字之类,默认即可,有需求可以换个名字创建多个key)
查看并复制生产的key,cat ~/.ssh/id_rsa.pub
2 gitlab设置
登录 git (gitlab或者github)
一开始会发送确认邮件到所属邮箱,需要登录邮箱点击确认进行激活才能继续操作。
以gitlab为例,点击右上角个人中心,选择设置
点击SSH Keys,并将刚刚本地生产的ssh key复制粘贴到下图所示位置,点击add 进行添加,Title任意取名即可。
3 fork代码
一般开发是这样一个流程 :初始代码在开发组仓库,每个成员各自fork一份到个人仓库。本地从开发组仓库获取更新,本地代码提交到个人仓库,个人仓库向开发组仓库发起合并,经开发组长活经理审核后同意merge请求。如果有问题则打回。
这样,点击左侧的Projects就可以看到个人仓库也有一份这个代码。
(PS:如果看不到开发组代码仓库的,看看自己在不在开发组的groups中,联系组内大佬加一下。)
二 代码拉取和配置
首先有命令行和图形化两种方式,命令行则用之前安装的git bash即可,图形化可以使用sourceTree,实测sourceTree较为简单。
这里提供两种模式下的操作。
1 git bash下操作
1.1 克隆代码
建议找一个目录,专门存放gitlab上的代码。在该目录下右击鼠标打开gitbash窗口
克隆代码 git clone ssh://git@git.xxx.com/xxx.git
进入代码文件夹, cd xxx
(cd后看到文件夹后的括号了么,表示这是一个git仓库文件夹,master表示当前分支是master)
1.2 配置本地信息
输入以下命令,配置邮箱和用户名,用于说明是谁提交,每次都会记录到历史操作中。
git config --global user.name "xxxxx"
git config --global user.email "xxx@xxx.com"
1.3 添加远程来源
上面说过了,拉到本地的是fork的代码,,每次更新还是需要从开发组仓库获取的。那么需要添加一下远程来源。
输入 git remote add yuancheng ssh://git@git.xxx.com/xxx.git
(前面是固定语法,yuancheng是我给他取得别名,可以随意修改,后面跟远程仓库地址)
输入git fetch yuancheng
拉取远程代码及所有分支 (如果远程来源多可以直接git fetch --all
)
可以输入 git branch -a 查看当前所有分支情况,可以看到除了remotes/origin是初始拉取的,多了一大堆remotes/yuancheng开头的分支,说明拉取是成功了。
1.4 更新代码
提交代码之前,一定要养成先更新下的好习惯。
其实个人仓库开发组仓库相对本地来说都是远程仓库。只不过按照目前做法,只从开发组仓库更新,命令如下: git fetch yuancheng master
意思是,从远程yuancheng源的master分支更新本地master分支
合并远程yuancheng源的master分支到本地master分支: git merge yuancheng/master
多数情况下,本地都是和远程相差甚远的,获取更新总是报错,要你本地很多文件先commit,但是你还不想提交,你可以先执行 git stash
然后再执行git fetch命令重新获取更新,遇到冲突本地修改完以后再commit提交到个人仓库。
2 sourceTree下操作
2.1 添加仓库
打开sourceTree,点击“文件--克隆/新建” 或者 “+”号进行新建。
gitlab上复制下仓库地址 ,有http和git两种格式,这里复制git格式的地址
在sourceTree下继续操作,首次添加都点击Clone,填写代码仓库地址,本地存放路径等信息,点击克隆。
(如果本地之前已经下载过,就点击Add文件夹直接进行添加即可)
此时会提示验证未通过之类的信息,意思是读取仓库失败了,别急,在设置中设置一下。
sourceTree打开“工具--选项--一般”,找到SSHKey客户端配置,SSH客户端选择 OpenSSH。
默认是Putty/Plink可以看到没读取SSH密钥,切换后,会自动拿到一个默认地址,读取到SSH密钥。
修改完,在回去添加仓库,克隆就可以成功了。
2.2 添加远程来源
右上角点击“远端”或者点击“仓库--仓库设置”,点击添加
可以看到已经有一个默认的仓库,就是我们的个人仓库,代码初始从这拉取的,但是更新要从开发组仓库拉,点击添加。
远端名称随便写,路径写开发组的项目地址,点击确定,可以看到现在有两个远程仓库了。
2.3 更新代码
点击“拉取”,从下拉框中选择开发组的那个地址。
点击“要拉取的远端分支”,选择master分支。
点击确定就行了。
2.4 界面信息简介
已暂存文件:已经commit过还没提交的文件。
未暂存文件:文件内容发生变化但还未commit过的文件。