Git, Gitlab使用文档

一、 前期准备

  1. 配置网络,连接局域网
  2. 下载 windows git
  3. 注册gitlab账号(注册后需要管理员确认通过)

二、配置ssh

本处来源:docker下gitlab安装配置使用

1.打开本地git bash,使用如下命令生成ssh公钥和私钥对

$ ssh-keygen -t rsa -C ‘xxx@xxx.com’
然后一路回车(-C 参数是你的邮箱地址)
在这里插入图片描述
生成密匙
2.然后输入命令:

$ cat ~/.ssh/id_rsa.pub # ~表示用户目录,比如我的windows就是C:\Users\Administrator

查询公匙:
在这里插入图片描述

3.打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框

在这里插入图片描述
在这里插入图片描述
添加公匙到gitlab

三、使用Git管理本地仓库

1. 初始设置

$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"

(该地方的名字和邮箱与在gitlab上注册的邮箱没有任何关系)

$ git init  #在所在的仓库文件夹下初始

2.git工作机制与举例

在这里插入图片描述
例如在本地practice中增添ceshi.txt文件:
在这里插入图片描述
我们输入git status 查看本地状态:
在这里插入图片描述

可以看到ceshi.txt还未被追踪,在工作区;
若我们git add操作,则ceshi.txt会变换到暂存区:
在这里插入图片描述
进行commit操作,则传送到本地库,每一个版本都会在本地库中保存
此时查看status,发现工作树是干净的:

在这里插入图片描述
在以上案例中,master即是本地的默认分支,下面讲到的main是gitlab远程库的默认分支。

四、使用git管理远程仓库(Gitlab)与团队协作

1.未搭建上游分支,即将搭建

1.1 当你有一个本地库,要推往远程仓库时:

关键命令:git push -u origin ceshi
Eg:在你所在的master(ceshi)分支下,将该master(ceshi)分支推送至gitlab仓库,以下为完整代码:

$ cd G:\Projects\AllFileAboutPythonProject\学习尝试\有用的工具\ceshi #此时的默认分支为master
$ git init
$ git remote add origin http://xxxx.git #添加远程仓库名
$ git status
$ git branch -v
$ git add .
$ git commit -m "ceshi分支第一个commit" 
$ git push -u origin master  #此时若远程仓库有master已经有分支,则会提示已有远端origin/master,且里面的文件有可能与本地不同步
$ git branch -m ceshi  #更改分支名master为ceshi
$ git branch -v #查看分支
$ git push -u origin ceshi  #推送ceshi分支到远端

此时gitllab仓库中ceshi分支为本地ceshi分支的上游分支。

1.2 当你本地没有库或分支,需要从远程仓库提取

####方法一(推荐):
$ git fetch origin develop     #将远程仓库中的develop分支fetch到本地的remote文件夹
$ git checkout develop   #在本地创建develop分支
$ git branch -a		 #查看所有分支,包括本地和远程,发现已经生成main分支
####方法二(不推荐):
$ git checkout -b develop origin/develop  #不推荐

此时git自动将远程develop视为本地develop的上游分支。
:第一行代码git fetch <远程仓库> <远程分支>;本地分支(branch -v)不会出现develop分支,而只是在远程分支(branch -a 红色部分)里面有origin/develop;但是如果checkout develop,本地就会自动建立一个模板分支develop

2.已搭建上游分支,拉取和推送代码的操作

在这里插入图片描述

还是以develop分支为例,上图是本地和远程的分支架构图

2.1 拉取代码操作

####方法一(建议使用):
$ git fetch (origin develop)  
$ git merge  (origin/develop)      
####方法二:
$ git pull  (origin develop)

2.2* 建议的操作 —— 在拉下的分支-b新建测试分支

在拉取之后,强烈建议在本地库新建一个test分支,以作测试用。 另外如果在写到某个地方想测试一下,可在当前分支git checkout -b <新分支>,然后在新分支上更改完毕后,如果满意的话就checkout回原来的分支merge新分支;如果不满意可以就checkout回原来的分支然后把新分支删了。

2.3 上传代码操作

还是以develop为例,在本地有develop分支,而远程仓库内也有一个develop的上游分支:
2.3.1 拉取同步
这时候同样进行一个上文写的拉取操作git fetch + git merge (建议使用) 或者 git pull,让remote文件夹更新并跟此时本地分支的代码做合并操作。
2.3.2 git merge test + git push
通过2.3.1操作,可能会产生如下图所示两种情况
①是远程库未更新,与当时刚拉取时一样,此时merge test分支,git push 红色的节点;
②是远程库更新,则merge后会产生一个新的节点,如果可以的话删除test分支,上传(push)红色的节点。
总的来讲,第二步就是git merge test并git push
总体代码:

$ git checkout develop
$ git fetch
$ git merge #等同于 git merge origin/develop
$ git merge test #本地develop分支合并 test分支
$ git branch -d test #可选择,如果是下图②情况,建议执行
$ git push

在这里插入图片描述

关于merge更多可看:为什么git merge有时会创建一个提交,而有时却不会呢
特别强调注意: 在上传代码时,一定要先把gitlab上面的代码fetch下来并merge;OK了之后再push

五、总结:

5.1 其他重要指令

git clone 项目地址(ssh地址)
切换分支:git checkout < branch name>
查看版本信息: git reflog
查看版本详细信息:git log (常用git log –-pretty=oneline;单行显示,短且清晰)
版本穿梭:git reset --hard 版本号
当你一不小心把某文件误add入暂存区,可以回退:git reset < filename>
查看所有分支:git branch -v
查看远程分支:git branch -a
重命名:git branch -m xxx
查看本地分支和远程分支的关联关系: git branch -vv
拉取并更新本地分支代码:git pull origin main (–allow-unrelated-histories)

5.2 总结git最重要的命令

git add
git commit
git pull
git push
git status
git branch
git fetch
git merge
git log
git reflog
git remote
git clone
git reset(常用于分支内切换版本)
git checkout (常用于切换分支)

参考链接:---------------------------------------------------------------------------------------------------
Git官方文档:https://git-scm.com/doc
尚硅谷:https://www.bilibili.com/video/BV1vy4y1s7k6
多人协同开发:https://blog.csdn.net/tomatoarmys/article/details/107556598
Push上传至远程仓库产生冲突:https://www.cnblogs.com/1050619969kong/p/15620842.html
log和reflog区别:https://blog.csdn.net/Seky_fei/article/details/114729213
docker下gitlab安装配置使用:https://www.jianshu.com/p/080a962c35b6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值