Gitlab使用实践及总结

正常流程

  • 首先,在 gitlab 上 fork 一个项目,放在自己名下,得到 自己项目 的SSH

  • 自己项目 下到本地:


$ git clone ssh://git@gitlab.xxxxx
  • 进入项目所在文件夹,输入下列指令:


$ git remote add gitlab ssh://git@gitlabxxxxxxx.git

注意此处的ssh是 原始项目 的ssh,

这里创建的名为gitlab的remote库的意义: 对其使用fetch和rebase,这样在push自己的commit之前,本地的代码库能保持最新并且和远端没有冲突。

  • 可以使用git remote -v来查看创建的remote库,结果如下:

gitlab ssh://git@gitlab.xxxxx.git (fetch)

gitlab ssh://git@gitlab.xxxxx.git (push)

origin ssh://git@gitlab.xxxxxxxx.git (fetch)

origin ssh://git@gitlab.xxxxxxx.git (push)
  • git fetch gitlab,更新gitlab的信息

如果不这么做,git checkout gitlab/master -b new_branch时会报错:


fatal: 'gitlab/master' 不是一个提交,不能基于它创建分支 'new_branch'
  • 更新之后,创建分支:


分支 'new_branch' 设置为跟踪来自 'gitlab' 的远程分支 'master'。

切换到一个新分支 'new_branch'

可以看到自动切换到了新创建的分支,可以通过git branch -a来查看所有分支

  • 在往项目中添加了新文件之后,要先add一下:git add 1.md,要是只是改动了文件则不需要

  • 做出更改之后,commit自己的更改,一般要使用-m添加说明:


$ git commit -m "what did i do"
  • 在push之前,要先确认自己本地的库是最新的且没有冲突:


$ git fetch gitlab

$ git rebase gitlab/master
  • 确认之后,就可以提交commit了:


$ git push origin new_branch

通过上面的命令可以看到,在git fetch和git rebase时,是基于名为gitlab的remote库,而push时,则是push到origin中。因为项目有很多人开发,所以更新代码时要以 原始项目 为准,上传时则是先上传到 自己项目 中去,待code review后再merge到 原始项目 中。

  • push了commit之后,即可在gitlab上发起merge request,等review通过之后即可。

特殊情况

  • git rebase 之后,git status 发现有冲突:

先将冲突搞定(到编译器中、或者用记事本里修改),然后将有冲突的文件重新 git add 一下,最后git rebase --continue即可,然后就可以push了。

  • code review后需要改动:

改完之后 $ git commit --amend -a ,若是不需要改commit的message就 $ git commit --amend -a --no-edit ,然后 git push -f(强制修改,作用和下文的--force一样)即可。

  • push了commit但是后悔了:


$ git reset--hard <版本号>

// 注意使用 --hard 参数会抛弃当前工作区的修改

// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交

比如merge request发现有三个commit,但是一般只应该有一个,就可以$ git reset --soft HEAD~2,即保存修改的情况下,将最新的两个commit删掉,剩下一个commit。

回退版本后,一定要记得amend 改动才会合并到之前的那个commit里,不然又会新建一个 commit 哦。。:


$ git commit -a --amend --no-edit

然后push时要记得加--force不然会说你本地版本太低:


$ git push origin add-config-mailbox --force

现在就可以merge request了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值