GitLab简介

GitLab是类似于GitHub的仓库管理系统,和GitHub一样,它能够提交/拉取代码,不同的是,GitLab可以部署在自己服务器上,数据库等信息是自己掌握的,适合团队内部协作开发。可以理解为个人版本的GitHub。

记录一下Git拉取提交文件到GitLab的命令。

前提
  1. 下载安装Git
  2. 在GitLab上有账号
  3. 更改Git Bash的起始位置:右键属性,改为自定义文件夹workspace,作为本地git仓库
  4. 在GitLab上配置SSHKey。目的是使客户端和服务端建立信任,每次操作就不需要再重复输入密码。
    具体操作: 首先需要在电脑上生成SSHKey,使用命令:
    ssh-keygen -t rsa -C "xxx@xxx.com"(引号内填自己的邮箱)一路默认回车,最后就在.ssh目录下得到了两个文件:id_rsa(私有密钥)和id_rsa.pub(公有密钥),把id_rsa.pub的内容复制到GitLab的SSH key中。

上述命令和以下所有命令均在GIt Bash中执行。

拉取命令
  1. git clone + 项目地址(项目地址:在GitLab中打开项目后直接复制"Clone with SSH")
  2. git pull由于已经关联了地址,之后更新可以用git pull直接更新到最新。
提交命令
提交新项目(未初始化Git仓库)
  1. git init使用cd命令进入到工程目录下,即进入工作区,把仓库变为可管理的git仓库,得到一个.git文件夹
  2. git add .将仓库下的所有内容添加到暂存区,如果只是个别内容就把“.”改为文件名
  3. git commit -m "注释内容"将暂存区的内容提交到本地版本库(参数-m很重要)
  4. git remote add origin + 远程仓库的地址(在GitLab上复制项目地址)把本地仓库和远程仓库关联
    如果出现 fatal:remote origin already exists
    那么输入命令:git remote rm origin 然后再重复:git remote add origin + 远程仓库的地址
  5. git push -u origin master把当前分支master推送到远程仓库。参数-u的意思是,只要本地做了提交,以后就可以直接用git push代替原命令进行推送
普通提交(已初始化Git仓库)
  1. git add .添加到暂存区(特别是工作区有新文件的时候必须要先添加到暂存区)
  2. git commit -m "注释内容"会对修改的文件进行注释,提交到版本库
  3. git push由于第一次关联过地址,所以不用再执行上述第四步,直接推送到GitLab
提交到分支

使用IDEA提交/拉取:右键Git–>Commit File–>Repository–> push/pull;
使用IDEA切换分支

  • git checkout -b + 分支
遇到的问题
  1. fetch first
  2. java拉取gitlab项目 git拉取gitlab代码_暂存区

  3. 这个问题是说远程仓库的版本和本地仓库不一致,要先fetch first,但是fetch比较麻烦,我选择用git pull拉取最新版本merge到本地,命令如下:
    git pull --rebase origin + 分支
  4. non-fast-forward
  5. java拉取gitlab项目 git拉取gitlab代码_gitlab_02

  6. 错误原因:文件冲突。远程仓库和本地仓库文件数量不一致(远程仓库有的文件在本地仓库中没有,或者不是在远程仓库文件基础上修改的。)这个时候就强制push就对了:
    git push origin + 分支 -f