gitlab是一个开源的git仓库管理软件,并提供web界面,方便管理git仓库。和github很相似,不过github暂时没有开源版本,项目必须托管到github官方网站,不能本地部署。很多公司考虑到安全费用等因素,搭建自己的gitlab服务器。
GitLab上创建远程库
点击【new project】,进入创建项目界面



The repository for this project is empty
If you already have files you can push them using command line instructions below.
Otherwise you can start with adding a README, a LICENSE, or a .gitignore to this project.
You will need to be owner or have the master permission level for the initial push, as the master branch is automatically protected.
如果你没有最新的代码,希望从头开始,下面展示在你希望pull过来的文件夹下Create a new repository
Command line instructions
Git global setup
设定本机用户名,绑定邮箱,让远程服务器知道机器的身份
git config --global user.name "zhangshan"
git config --global user.email "zhangshan@163.com"
Create a new repository
打开要建立本地库的父目录下,打开git bash,输入命令:
cd existing_repo //进入要建立本地库项目的文件夹
git clone http://172.20.110.18:9999/zhangshan/vpnwin.git //clone 将远程服务器的库关联上当前文件夹
touch README.md //新建文件提交进远端库里 新建readme文件
git add README.md //将新的文件添加到git的暂存区
git commit -m "add README" // 将暂存区的文件提交到某个版本内 保存下来,并加上注释
git push -u origin master //将本地的更改提交到远程服务器
cd existing_folder //打开要上传最初代码文件的文件夹,或者直接打开代码文件夹,然后打开git bash
git init //初始化该文件夹,设置这是一个git文件夹
git remote add origin http://172.20.110.18:9999/zhangshan/vpnwin.git //添加远端项目库地址,关联上远端项目
git add . //添加该文件夹中所有的文件到git的暂存区
git commit -m "Initial commit" //提交所有代码到本机的版本库
git push -u origin master //将本地的更改提交到远程服务器
cd existing_repo
git remote add origin http://172.20.110.18:9999/zhangshan/vpnwin.git
git push -u origin --all
git push -u origin --tags
命令:git pull origin分支名称
拉取指定分支代码并且合并到当前分支:
注意:
每次使用该命令前,要保证本地工作区是没有任何代码修改的,即需要将本地工作区编辑过的文件添加到暂存区(git add .),或提交到本地仓库中(git commit),才可以使用该命令拉取指定分支的代码合并到当前分支中。
每次在操作完git commit命令后,必须拉取一下master分支代码,保持本地正在开发的代码是最新的,避免后续在提交时冲突过多或覆盖掉他人代码的问题出现。
如果需要拉取master主干分支的代码并与我们的当前分支代码进行合并的话,可以使用该命令
如何去解决fatal: refusing to merge unrelated histories
我们生成一个项目后,与我们自己在github新建的空仓库进行关联,关联后运行git pull时发现报错:
refusing to merge unrelated histories
这是因为远程仓库已经存在代码记录了,并且那部分代码没有和本地仓库进行关联,我们可以使用如下操作允许pull未关联的远程仓库旧代码:
git pull origin master --allow-unrelated-histories
然后我们可以push代码了
git 中clone与pull
git 中clone代码,git不会对比本地和服务器的文件,也就不会有冲突,
确定完全覆盖本地的时候用clone;
不确定会不会有冲突的时候用git pull,将远程服务器的代码download下来
几个常用的git 命令
git log //查看所有的版本日志
git status //查看现在暂存区的状况
git diff //查看现在文件与上一个提交-commit版本的区别
git reset --hard HEAD^ //回到上一个版本
git reset --hard XXXXX //XXX为版本编号,回到某一个版本
git pull origin master //从主分支pull到本地
git push -u origin master //从本地push到主分支
git pull //pull默认主分支
git push //push默认主分支
分支合并请求
在一个分支上开发,完毕后往目标分支上去合并,需要提交合并请求



合并可能会有冲突
有冲突时,我们发现合并按钮置灰,右边多了【解决冲突】按钮
点击【解决冲突】,出现【解决冲突】页面,页面可以通过 【使用我们】的 指定使用发起merge request的源分支的代码或者 【使用他们的】指定使用目标分支的代码。或者点击【内嵌编辑】直接通过编辑页面编辑(更通用)。解决完冲突后,点击【提交到源分支】,接着即可点击【合并】按钮。


本文介绍了如何在GitLab上创建远程仓库,并提供了详细的命令行指令,包括Git全局设置、克隆与拉取代码、解决fatal: refusing to merge unrelated histories错误,以及常见的Git命令。此外,还讲解了如何处理分支合并请求时的冲突。
526

被折叠的 条评论
为什么被折叠?



