| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> gitLab -> 正文阅读 |
|
[开发工具]gitLab |
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。下面是使用步骤 1. 注册进入注册页面(需要公司的人提供地址)例如:?http://xx.xxx.xx.xx:18000/users/sign_in??注册完成,将账号给管理员,开通权限。 2. 安装git客户端(生成ssh key, 提交代码什么的都需要它)下载地址:?Git - Downloads?下载完成, 默认安装即可 3. 生成 ssh key?3.1 随便打开一个文件夹,右键 点击 Git Bach Here (没有安装git客户端是找不到的)
3.2 设置全局变量:例如注册名是 abc;? 邮箱是 youxiang@xx.com git config --global user.name "abc" (加上双引号,不加没有试过) 3.3 生成ssh key 命令: ssh-keygen -t rsa -C "youxiang@xx.com"?(上面的邮箱地址) 成功的截图:(找到C:Users登录用户名.ssh 目录,里面有两个文件:id_rsa和id_rsa.pub) 4. 配置ssh, 登录gitLab 见下面截? 执行上面步骤之后,应该就可以拉取代码了; git相关一些概念: 工作区间:?即我们创建的工程文件, 在编辑器可直观显示; 缓存区:?只能通过git GUI或git shell 窗口显示,提交代码、解决冲突的中转站; 本地仓库:?只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处; 远程仓库:?即保存我们代码的服务器,本文以公共版本控制系统:github为例,登录github账号后可直观显示; ?1. 代码克隆-远程库已经建立了,需要拉取代码到本地的步骤:找到地址 1.2 新建一个空的文件夹, 使用 1.3? git终端 输入:git clone?ssh地址?;此时提示 yes/no 那么输入 yes (不然很有可能拉取不了代码); 拉取成功,会出现项目的文件夹, cd 到 项目目录,出现master说明当前是在 master 分支上 2. 本地库关联远程库的步骤:? 1.? github上新建一个空的远程仓库: 新建完成后会有一个ssh地址: 例如:https://github.com/ImCccc/test001.git 2.? 添加ssh key(生成的方法上面已经说明,其实和gitlab添加是一个道理)? 输入命令:在本地的项目打开git终端,输入下下面的命令: git init git add -A git commot -m '提交注释' git remote add origin https://github.com/ImCccc/test001.git git push -u origin master `git init ` 表示在当前的项目目录中生成本地的git管理; `git add -A` :使用-A:将新增、删除、修改的文件改动全保存至缓存区; `git commit -m "first commit"` :将代码从缓存区保存至本地仓库,实际开发中一般使用`git commit -am "说明的文字"`,使用 -a:如果没文件更改操作(增、删、改名)就可以省略git add指令; `git remote add origin?ssh地址` :将本地仓库与指定的远程仓库创建 联系; `push -u origin master` 将本地仓库代码推送至远程仓库,实际开发中该指令后需要输入github 账号以及密码。(首次提交注意别遗漏`-u`指定默认主机) 以上指令正常执行后, 本地仓库的代码就提交到远程仓库了: ?分支操作新建切换分支新建:?git branch dev 切换:?git checkout dev 新建切换一起:?git checkout -b dev 提交到远程仓库:?git push origin -u dev 打开浏览器就看到新建的分支了: ? 查看分支:git branch? 删除远程dev分支:git branch -r -d origin/dev master分支合并到当前分支:git merge master git push origin?(合并之后提交至远程仓库) 拉取代码:git pull?? 等于下面2个命令: git fetch 新增代码:看看是否有文件需要`git add`:?git status 按顺序执行以下命令: git add .???(添加当前目录的所有代码) git commit -m? '提交留言'??(提交在本地的,远程还没有看到) git push origin -u dev? (提交到远程的 dev 分支, 成功之后,浏览器应该会看到提交的代码) ? ?合并分支merge,或者拉取代码push, 出现冲突解决方案:出现以上提示, 说明本次更新代码失败;主要在于本地工作区间跟远程仓库的新代码冲突了,?图解如下: ?有两种方式处理冲突:?放弃本地修改或?解决冲突后提交本地修改 1. 放弃本地修改放弃本地修改意味着将?远程仓库?的代码完全覆盖?本地仓库?以及本地工作区间 git checkout head . 更新远程仓库的代码就不会出现冲突了: git pull?或者?git merge dev
2. 解决冲突后提交本地修改将本地修改放入缓存区(成功后本地工作区间的代码跟本地仓库代码会同步), 具体指令: git stash? 从远程仓库获取最新代码,具体指令: git pull?或者?git merge dev 取出本地修改的代码,冲突的代码就很清晰的展现在我们面前了, 具体指令: git stash pop 然后手工解决冲突,提交代码: git add README.md 版本回退:回退到上一个版本(上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100): git reset --hard HEAD^ 回调未来版本: Git提供了一个命令 回到未来:git reset --hard 97e962c 现在总结一下:
撤销修改:git checkout -- readme.txt
一种是 一种是 总之,就是让这个文件回到最近一次
缓存当前的代码在其他分支干别的事:如果要修复一个bug,不过当前正在dev上进行的工作只进行到一半,还没法提交,Git还提供了一个 git stash 首先确定要在哪个分支上修复bug,假定需要在 git checkout master git checkout -b issue-101 修复完成后,切换到master分支,并完成合并,最后删除issue-101分支: git checkout master git merge issue-101 现在,是时候接着回到dev分支干活了! git checkout dev 恢复现场: git stash pop 命令方式提交代码太麻烦下面是 vscode 集成 gitLab下载安装:?Visual Studio Code - Code Editing. Redefined ? vscode 集成 git 无需安装 扩展插件,下面是使用vscode 提交代码的说明(前提是完成gitLab相关的配置,未完成请参考gitLab教程) 提交代码的流程是: 拉取 -> 暂存 -> 提交 -> 推送 1)? 查看修改文件 ? 2)? 拉取 拉取的意思是同步服务器上的最新代码,为了防止代码冲突,推送之前需要先拉取代码,操作如下: ?3)? 暂存更改 单文件暂存: 暂存所有更改: ?4)? 放弃更改 意思是将修改的文件还原为服务器上的版本; 和暂存更改的操作一样,选的时候选择放弃更改即可; 5)? 取消暂存更改 暂存更改之后,会显示已经暂存的文件,可以取消暂存修改: ? 取消之后,文件在更改列表中: ? 6)? 提交 提交的意思是将代码提交在你本地的分支上,提交成功,服务器上是没有你的提交记录的,必须推送之后才有,操作如下: ? 7)? 推送 推送的意思是将代码推送到分支上,成功之后,服务器上就有你的提交记录,别人就可以拉取到你提交的代码,操作如下: 问题:在A分支上提交了一个commit,B分支也同样需要这个commit的代码,分支B需要上线,但是分支B不能合并分支A, 因为分支A有些代码不能直接上线,下面就教你如何只合并分支A的某一个commit?1. 先找到需要合并的commit的代号,一般是一个很长的字符串,可以在gitLab找到,如下图 ?2. 终端执行命令:git cherry-pick ff476ddb3535f6c6af8576c3be98530b584c9b2d ? 问题:2个人协同开发,另一位同事新建了dev_2.0.0分支,但是在本地看不到别人新建的分支(在拉取、更新操作后),导致切换不了dev_2.0.0分支? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 21:17:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |