1、GitLab 简介
GitLab 是类似于 GitHub 的仓库管理系统,和 GitHub 一样,它能够提交/拉取代码,不同的是,GitLab可以部署在自己服务器上,数据库等信息是自己掌握的,适合团队内部协作开发。可以理解为个人版本的 GitHub。
2、Git 拉取和提交文件到 GitLab 的命令。
2.1 前提
(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中执行。
2.2 拉取命令
-
git clone + 项目地址
(项目地址:在GitLab中打开项目后直接复制"Clone with SSH") -
git pull
由于已经关联了地址,之后更新可以用git pull
直接更新到最新。
2.3 提交命令
(1)提交新项目(未初始化 Git 仓库)
-
git init
:使用 cd 命令进入到工程目录下,即进入工作区,把仓库变为可管理的 git 仓库,得到一个.git
文件夹。 -
git add .
:将仓库下的所有内容添加到暂存区,如果只是个别内容就把“.”
改为文件名。 -
git commit -m "注释内容"
:将暂存区的内容提交到本地版本库。(参数 -m 很重要) git remote add origin + 远程仓库的地址
:(在 GitLab 上复制项目地址)把本地仓库和远程仓库关联。
- 如果出现
fatal:remote origin already exists
- 那么输入命令:
git remote rm origin
- 然后再重复:
git remote add origin + 远程仓库的地址
-
git push -u origin login
:把当前分支 login 推送到远程仓库。参数 -u 的意思是,只要本地做了提交,以后就可以直接用 git push 代替原命令进行推送。
(2)普通提交(已初始化 Git 仓库)
git add .
:添加到暂存区(特别是工作区有新文件的时候必须要先添加到暂存区)。git commit -m "注释内容"
:会对修改的文件进行注释,提交到版本库。git push
:由于第一次关联过地址,所以不用再执行上述第四步,直接推送到 GitLab。
(3)提交到分支
使用 IDEA 提交/拉取:右键 Git–>Commit File–>Repository–> push/pull
;
使用 IDEA 切换分支
git checkout -b + 分支
(4)遇到的问题
fetch first
这个问题是说远程仓库的版本和本地仓库不一致,要先 fetch first,但是 fetch 比较麻烦,我选择用 git pull 拉取最新版本 merge 到本地,命令如下:
git pull --rebase origin + 分支
non-fast-forward
错误原因:文件冲突。远程仓库和本地仓库文件数量不一致(远程仓库有的文件在本地仓库中没有,或者不是在远程仓库文件基础上修改的。)这个时候就强制 push 就对了:
git push origin + 分支 -f