GitLab操作类似于GitHub:https://blog.csdn.net/jizhidexiaoming/article/details/98061609
一、本地仓库上传到远程仓库
1,本地mkdir tools
2,要上传的scripts复制到该目录下
3,然后初始化工作:
4, add到暂存区,再commit到本地仓库
5, 查看自己git的信息
6,配置秘钥,这里用上次GitHub上配置的秘钥,可以共用!由第5步得知自己的邮箱,再使用命令:
ssh-keygen -t rsa -C “自己的邮箱” 一路回车,如下:
采用默认配置Git本地仓库与GitHub(GitLab)远程仓库之间的传输主要是通过SSH方式加密传输,他们直接需要配置一个秘钥,就如同暗号一样,只有对上了,你才能连接上远程的 Github (GitLab)仓库
执行完这条命令后,你会在当前账号的主目录下找到一个 .ssh 的文件,被隐藏了。
7,将秘钥添加到 github 账户
首先,打开id_rsa.pub文件,复制里面的内容,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人;然后回到你 github 的首页,点击 Settings,操作和github一样,这里不再截图说明。
8,创建远程仓库
点击加号
9,将本地仓库和远程仓库关联
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
复制远程仓库的网址:
注(可忽略):如果要将相同的本地代码,上传到其他远程仓库中: git remote add [修改shortname] [修改对应的url]:
使用命令git remote add origin 旧有的远程url.git之后生成的
.git/config文件
提交到其他远程项目,修改修改对应的远程链接,使用命令:git remote add 新的远程名字PIE 修改的远程url.git
再合并本地的master和小分支
再push到远程的其他工程中:
10,将本地仓库内容push到远程仓库
报错,原因已经说明了,是因为我的远程仓库了我创建了README.md ,而我的本地仓库没有,需要pull下来,再合并
报错,需要先建立分支跟踪,指定要合并哪个分支。然后再次push
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
11,刷新GitLab网页,查看是否成功上传
成功上传scripts文件夹!
二、多人协作工作(一个master,多个dev)
多人协作时,大家都会往master分支上推送各自的修改。分支策略:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
现在我们可以模拟另外一个同事,可以通过在同一台电脑上另外一个目录克隆,新建一个目录名字叫tools2,下面是两个用户之间的协作过程
1,首先是用户1的操作:
(1)创建了一个dev,修改了scripts/readme.md内容,过程是
创建一个dev分支。
(2)修改scripts/readme.md内容。
添加到本地仓库。
(3)切换回主分支(master),将dev分支和master分支合并,使用命令 git merge --no-ff -m “注释” dev
(4)该用户1然后要把dev分支推送到远程去
刷新GitLab网页,出现dev分支:
2,用户2的操作
这样用户2首先git clone 远程仓库的master分支,然后在本地仓库建立自己的dev分支,并做修改。用于2要push到远程仓库的dev分支时,可能会报错。因为期间,远程的dev分支被其他用户,比如用户1修改了,所以需要用户2在dev分支下,git pull把最新的提交从origin/dev抓下来,然后在本地合并,解决冲突,再推送。
具体过程如下:
在tools2文件夹下git clone 远程仓库的mater分支,
然后用户2新建了dev分支,并在此分支上做了修改,注意当前的工作空间是tools2/test_project
同样用户2也是和用户1一样的操作,也想推送到远程仓库,操作如下:
add, 再commit到本地仓库,注意经常查看自己是在哪个分支上?修改了哪个?是否修改成功?小心操作。
将dev分支和master分支合并,使用命令 git merge –no-ff -m “注释” dev
该用户2然后要把dev分支也要推送到远程dev分支上去 (如果我们现在要推送到其他分支,比如master分支上,我们还是那个命令 git push origin master)
git push报错,原因是当前要提交的dev版本落后于远程上的dev分支。解决办法要在本地仓库的dev分支上pull远程的dev分支,中间会出现一些问题,解决办法如下:
刷新GitLab网页:
更新成功。