千家信息网

Gitlab使用和分支管理(三)

发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,(一)、配置SSH到Gitlab账号1、使用ssh-keygen生成密钥文件.ssh/id_rsa.pub[root@zabbix-proxy0496 ~]# ssh-keygen Generatin
千家信息网最后更新 2024年09月28日Gitlab使用和分支管理(三)

(一)、配置SSH到Gitlab账号
1、使用ssh-keygen生成密钥文件.ssh/id_rsa.pub

[root@zabbix-proxy0496 ~]# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:3DpddsSwRtOfMSDE8NSancZpL9sP7LPKFZQmjc2BWxc root@zabbix-proxy0496The key's randomart image is:+---[RSA 2048]----+|         .++=+oE.||          ooo@o=.||           .Xo%o+||       . . +.% ..||        S . = +  ||         o o + o ||        o .   B  ||         . . +.o ||            o.ooo|+----[SHA256]-----+

2、查看公钥的配置密文

[root@zabbix-proxy0496 ~]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJLYoootIWqpvrvuCpdCzSQGFHt/AYrXo5eYiqU6f2x8e55EjlOTMchykdBdZH0E38T7E/0GVD5J4Juo0F4TKXQAS0Vcg3MvDdaMyJRUBliN+CP8PjiTcKmLBXXnFTyr2d7XSLrkOq7EMf5PXpvl/SK+ildMC0YKNm2bDcg6hTRdWMoSC9dqUY/xNXmCxAn020dolfyyMb8NBmQCZOjZUlyfZt0KFnyMU3I8Fa5ex6Ow8ymGcTRnc/oXrOhclVU7e7tZ+zpe0EibKcsd7vDvW/fXIIkU7DXEMxn5mldf8rq81Zij0YgmebFpHI34dQ4UK1ey7PhIR73tCktUdsUmVX root@zabbix-proxy0496

3、在gitlab上添加ssh-key登陆

(二)、常用操作
1、把相关的代码克隆下来

[root@zabbix-proxy0496 gitlab]# git clone git@192.168.4.97:lqb/yw.gitCloning into 'yw'...The authenticity of host '192.168.4.97 (192.168.4.97)' can't be established.ECDSA key fingerprint is SHA256:7OoUZ9xWrE2sHmPq57C3L/DJdhX+zrrYlm58tboarqQ.ECDSA key fingerprint is MD5:fa:38:e5:fc:90:d2:37:47:d4:0f:56:94:2e:8b:44:50.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.4.97' (ECDSA) to the list of known hosts.remote: Enumerating objects: 25, done.remote: Counting objects: 100% (25/25), done.remote: Compressing objects: 100% (20/20), done.remote: Total 25 (delta 6), reused 0 (delta 0)Receiving objects: 100% (25/25), 67.95 KiB | 0 bytes/s, done.Resolving deltas: 100% (6/6), done.[root@zabbix-proxy0496 gitlab]# lsyw

2、进相应的仓库查看git状态

[root@zabbix-proxy0496 gitlab]# cd yw/[root@zabbix-proxy0496 yw]# git status# On branch masternothing to commit, working directory clean[root@zabbix-proxy0496 yw]# ls1.png  CONTRIBUTING.md  Dockerfile  lqb  README.md  test.sh

3、创建相应的代码添加到暂存区并上传到gitlab服务器上

[root@zabbix-proxy0496 yw]# echo "this is first " > index.html [root@zabbix-proxy0496 yw]# cat index.html this is first [root@zabbix-proxy0496 yw]# git add index.html [root@zabbix-proxy0496 yw]# git commit -m 'first commit'[master 7d6a20e] first commit 1 file changed, 1 insertion(+), 1 deletion(-)[root@zabbix-proxy0496 yw]# git push -u origin masterCounting objects: 7, done.Delta compression using up to 4 threads.Compressing objects: 100% (4/4), done.Writing objects: 100% (6/6), 519 bytes | 0 bytes/s, done.Total 6 (delta 2), reused 0 (delta 0)To git@192.168.4.97:lqb/yw.git   4497bc1..7d6a20e  master -> masterBranch master set up to track remote branch master from origin.

4、相关常用的命令

[root@zabbix-proxy0496 yw]# git log                  ###查看历史提交记录[root@zabbix-proxy0496 yw]# git reflog              ###查看未来历史更新点[root@zabbix-proxy0496 yw]#git reset --hard HEAD ###还原提交版本上一次,上一次提交版本HEAD#########git删除数据1、 git rm --cached database  #将文件从git暂存区域的追踪列表移除并不删除当前工作目录内的数据文件->只删除缓存 2、 git rm -f database 4 #将文件数据从git暂存区和工作目录一起删除->永久删除##########git重命名数据3、git mv README NOTICE  #### README修改前/NOTICE修改后;最后进行提交git仓库 2 注意:也可mv修改名称→删除git仓库的文件快照git rm '*.txt'→将新的文件添加进去→提交git仓库备注:git rm -f filename      #删除工作区和暂存区的文件(use --cached to keep the file, or -f to force removal)​git diff file          #比较本地vs暂存区git diff --cached file    #暂存区vs本地版本库git log --oneline        # 一行显示         --decorate      # 具体操作​git log -p                 #显示详细信息git log -1                #显示1条commit 相当于做快照从暂存区恢复到本地工作区  git checkout -- file           # 撤销工作区更改从版本库恢复[覆盖]到暂存区(暂存区错误add交)git reset HEAD file从版本库回退到版本[某一次commit版本]git reset --hard f34j34回退后,回退点之后的git log 日志看不到git reflog 查看所有commit的日志

5、标签使用(一般用于commit之后)

[root@zabbix-proxy0496 yw]# git tag v2.0       #####给当前内容打上标签[root@zabbix-proxy0496 yw]# git show v2.0    #####查看当前版本v2.0标签的详细信息[root@zabbix-proxy0496 yw]# git tag v2.1 -m "version 2.1 release is test"   #######对当前版本(最新)打标记,用于commit提交之后接着进行打标记(-a指定标签名,-m为说明信息)[root@zabbix-proxy0496 yw]# git tag         #####查看当前所有标签v1.0v2.0v2.1[root@zabbix-proxy0496 yw]# git tag -d v2.0      ######删除标签v2.0Deleted tag 'v2.0' (was 1c2bec9)[root@zabbix-proxy0496 yw]# git reset --hard v2.2HEAD is now at 02318ea this is second[root@zabbix-proxy0496 yw]# git reset --hard 02318ea    #######快速回滚HEAD is now at 02318ea this is second

Workspace:工作区
Index/Stage/Cached:暂存区
Repository:本地仓库
Remote:远程仓库
Git命令就是用于将文件改动切换到不同的空间来记录

(三)、分支的概念

Git的分支,从本质上来讲仅仅是指向提交对象的可变指针。在这一点上与SvN是有着本质的区别。SVN的分支实际上就是一个目录。
Git的默认分支名字是master。在多次提交操作之后,你其实已经有一个指向最后那个提交对象的master分支。它会在每次的提交操作中自动向前移动。
git 分支如下图

常用的命令如下:

git branch          #查看分支git checkout dev    #切换分支git merge dev       # 合并分支如果修改了同一个文件,合并时会冲突,需要确定修改内容在master 修改冲突的文件,add 提交,commit -->合并完成git brach -d dev 删除分支

在实际的项目开发中尽量保证master分支稳定,仅用于发布新版本,平时不要直接修改里面的数据文件。而开发都在dev分支进行修改,即每个人从dev分支创建自己个人分支,开发完合并到dev分支,最后合并到master分支
1、创建和切换分支

[root@zabbix-proxy0496 yw]# git branch dev       #####创建分支[root@zabbix-proxy0496 yw]# git branch            #####查看分支情况当前分支有*号  dev* master[root@zabbix-proxy0496 yw]# git checkout dev    #######切换分支Switched to branch 'dev'[root@zabbix-proxy0496 yw]# git checkout index.html       ######一键还原,直接将git仓库的文件覆盖当前文件[危险][root@zabbix-proxy0496 yw]# git branch* dev  master

2、合并分支

[root@zabbix-proxy0496 yw]# git checkout master      ####切换分支Switched to branch 'master'[root@zabbix-proxy0496 yw]# git merge dev                   ####dev分支合并到masterMerge made by the 'recursive' strategy. 1.log | 1 + 1 file changed, 1 insertion(+) create mode 100644 1.log[root@zabbix-proxy0496 yw]# git branch  dev* master[root@zabbix-proxy0496 yw]# tree.├── 1.log├── 1.png├── CONTRIBUTING.md├── Dockerfile├── index.html├── lqb├── README.md└── test.sh[root@zabbix-proxy0496 yw]# git branch -d dev             ######删除dev分支Deleted branch dev (was a9b4292).[root@zabbix-proxy0496 yw]# git branch* master

(四)、Github
Github顾名思义是一个Git版本库的托管服务,是目前全球最大的软件仓库,拥有上百万的开发者用户,也是软件开发和寻找资源的最佳途径,Github不仅可以托管各种Git版本仓库,还拥有了更美观
的Web界面,您的代码文件可以被任何人克隆,使得开发者为开源项贡献代码变得更加容易,当然也可以付费购买私有库,这样高性价比的私有库真的是帮助到了很多团队和企业。

1、注册用户
2、配置ssh-key
3、创建项目
4、克隆项目到本地
5、推送修改到远程

echo "#git">> README.mdgit initgit add README.mdgit commit -m "first commit"git remote add origin git@github.com:lewen/git.gitgit push -u origin mastergit remote add origin git@github.com:lewen/git.gitgit push -u origin masterssh-keygen -t rsa将公钥添加到    一个公钥在github只能绑定一次将远程的拉下来,合并后,再 pushgit fetch 将远程的更新到本地git merge origin/master  合并远程的到本地master先拉,再合并,再推#####常用的命令1 add        #添加文件内容至索引 2 branch     #列出、创建或删除分支 3 checkout   #检出一个分支或路径到工作区 4 clone      #克隆一个版本库到一个新目录 5 commit    #记录变更到版本库 6 init        #创建一个空的 Git 版本库或重新初始化一个已存在的版本库 7 log        #显示提交日志 8 merge     #合并两个或更多开发历史 9 mv        #移动或重命名一个文件、目录或符号链接10 pull       #获取并合并另外的版本库或一个本地分支11 push      #更新远程引用和相关的对象12 rm        #从工作区和索引中删除文件13 show     #显示各种类型的对象14 status     #显示工作区状态15 tag       #创建、列出、删除或校验一个GPG签名的 tag 对象
分支 文件 版本 仓库 存区 工作 工作区 开发 对象 数据 标签 目录 切换 代码 命令 常用 信息 公钥 内容 历史 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 联想t100服务器机箱 全国网络安全工作会议 数据库中的sql语言是 统计微课堂之二网络安全知多少 主数据库文件的后缀为 项目招标书服务器主机设备采购 天轮数据库技术社区 西安石油大学数据库复试 数据库怎么设计一个选课系统 内部网络外部网络安全屏障 网络安全知识竞赛哪个单位 数据库的数据具有 和 三个特点 对折伴奏软件开发 宁夏北网网络技术有限公司 滨州苹果软件开发服务公司 延庆区咨询软件开发职责 网络安全靠人民板报 上海软件开发交多少税 软件开发都有什么外文网站 服务器密码不安全怎么办 生物学数据库中二级数据库有哪些 字段下拉框调用数据库 王者荣耀什么服务器最菜 香辛料指纹图谱数据库 base 数据库 网络安全教育手抄报字 华为升腾云服务器实例 软件开发人员质量管理 软件开发结转成本会计处理 网络安全审计经验做法总结
0