| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 工具学习-Git -> 正文阅读 |
|
[开发工具]工具学习-Git |
目录 1 概述Git 是一个免费的开源分散式版本控制,旨在以快速高效的方式处理从小到大的各种项目。 何为版本控制:
为什么需要版本控制呢:因为工作不是一个人,而是团队协作,多人都修改文件,可能造成错误。版本控制就尤为重要 版本控制分为两种:
Git工作机制: Git共分为三个区域:
Git和代码托管中心:
2 安装Git基本上一直next就可以了,桌面鼠标右键有git bash,打开就可以使用了 3 常用命令3.1 设置用户签名?设置用户签名如下: ? 可以在c盘/用户/用户名? 下查找如下文件,看看是否设置成功 签名的作用是区分不同操作者的身份,用户签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。注意:Git首次安装必须设置一下用户签名,否则无法提交代码 3.2 初始化本地库创建一个新目录,然后初始化,只有初始化之后才能使用git 然后我们就发现目录中新建了一个.git文件 3.3 查看本地库状态首次查看,没有任何文件 新增文件,hello.txt 使用vim hello.txt新增这个文件,输入一些内容。yy复制,p粘贴 再次查看本地库状态: 前两行还是一样,因为我只是创建一个文件,并没有添加到git库。下面也提示了未追踪的文件用红色标出? 3.4 添加暂存区再次查看我们发现,颜色绿了,添加成功,git追踪到了这个文件,此时文件存储到了暂存区。它也提示我们可以删除,我们删除试试: 这也告诉我们暂存区只是暂存,可以删除,它不会影响工作区的文件,更不会影响到本地库,都没有添加到本地库 3.5 提交到本地库?还可以查看日志信息: 3.6 修改文件修改后再查看状态就提示文件已被修改,我们需要再次添加到库? 添加到本地库之后再查看日志: ?发现有两个版本,而head指向第二个版本,所以这时我们在工作区查看的文件就是第二个版本 3.7? 历史穿梭假如新的版本我觉得还不如旧的版本我可以改回去: 首先查看历史版本,用reflog查看日志就可以看到,复制版本号 4 Git分支4.1 概述什么是分支:在版本控制过程中,同时推进多个任务,我们就可以为每个任务都创建一个分支,主线分支不会受影响。可以理解为副本,一个分支就是一个副本 分支的好处:效率高,一个分支开发失败不会影响其它分支 4.2 分支的操作然后修改文件,添加到暂存区,提交到本地库 切换到master分支再次查看hello文件,发现并没有改变,接下来合并分支,将hot-fix中的hello合并到master中,也就相当于改变master分支中的hello文件为hot-fix中的hello文件: 这是成功的,但是当我们将两个分支的hello文件都修改再合并就会出现冲突: 我们先修改master中的文件提交到本地库 切换到hot-fix分支,我们再修改hot-fix分支的文件提交到本地库? 再切换到master分支,合并文件: 我们发现出现了冲突? 解决合并冲突问题: 我们打开hello文件,发现多了很多内容,把多余的删掉 删掉多余内容后如下: 我们再次将文件提交到本地库但是发现出现了错误: 把文件名去掉就可以了: 而hot-fix分支的文件还是之前修改的那个样子 总结合并冲突的过程和解决方法:两个分支都修改文件并且提交到本地库后,打开文件将多余的删掉然后再次提交本地库,但是这次提交不需要指定文件名称 5 团队协作机制5.1 团队内协作一个团队会有一个本地库,但是别人要进行操作怎么办?负责人会将本地库上传(push)到代码托管中心(远程库),然后团队别人可以拿到(clone)这个库进行各种操作,操作完之后可以上传(push)到代码托管中心。负责人看到这个修改后的觉得还不错可以更新本地库(pull)。 5.1 跨团队协作两个团队的协作:若自己团队写代码还不够,需要别的团队来写,但是我不能直接把别的团队的人加入到我的团队,这时就需要跨团队协作。首先将本团队的远程库代码复制(fork)给别的团队的远程库。然后另一个团队就可以将远程库的文件复制到本地库进行修改,修改后添加(push)到远程库。然后给本远程库发送拉取请求(Pull request),在接收之前我是要审核的,审核完就合并(merge)到我的远程库,最后拉取(pull)到我的本地库。 6 Gitee操作因为登不上GitHub,就用Gitee了 6.1 创建远程仓库首先新建仓库 6.2 远程仓库操作6.2.1 为远程库创建别名?因为远程仓库地址太长我们最好创建个别名: 我们发现创建了两个别名:这表明这个别名既可以推送又可以拉取 6.2.2?推送本地分支到远程仓库登录后打开Gitee发现文件以及被推送到Gitee? 6.2.3拉取远程仓库到本地库我们可以直接在远程仓库修改代码,但是这不会改变本地库 这就需要我们拉取远程仓库到本地库操作: 不需要我们手动提交到本地库,这一部就可以了 6.2.4 克隆远程库到本地我们要再创建一个本地库名为gitlhc 在克隆前我们要删掉之前的凭据,因为Windows一次只能登录一个? 要在新建的本地库打开git? 打开本地库:已经克隆成功? 而且我们发现clone会拉取代码并且初始化本地仓库并且会创建别名,别名为origi。克隆不需要账户,以为它是公开的,谁都可以克隆。 6.3 邀请加入团队我们在新创建的本地库中修改克隆的文件并提交到本地库,之后push到我们的远程库 我们发现出现错误:无法访问,因为我们还不是这个团队的成员,虽然可以克隆仓库但是不能推送我们修改的仓库。 我们要将这个用户加入到我们的团队: 点击 仓库gitspace->管理->仓库成员管理->添加仓库成员 我们登录 另一个账号查看私信看到已经受到邀请,同意即可? 我们再次push? 查看我们的远程仓库确实上传成功了? 我们再在最初的本地仓库拉取远程仓库: 记得在拉取之前要在凭据管理器删除别的用户 再使用 git pull gitspace master将远程仓库拉回到本地 6.4 跨团队协作也就是不同团队的协作,但是我没有账号了,所以这里将wangzhijuan那个账号移除我的团队来模拟这个功能 别的团队可以直接在Gitee上搜我的远程仓库,当然我将链接发给他更合适,拿到链接点击fork将项目叉到自己的仓库 接下来他会进行修改代码,接下来点击上方的 Pull Requests 请求,并创建一个新的请求 填写好后点击创建pull request,然后打开我们的Gitee查看: 然和合并分支: ?查看我们本地库的代码已经被合并成功了 6.5 SSH免密登录在 C盘 User目录下自己的账户下右键 git bash here, 输完命令按三下回车,就会弹出如上结果,而且user目录下会有.ssh文件,里面是公钥和私钥,? cat id_rsa.pub是公钥,将公钥复制 添加公钥? 连接不上,再见(微笑) 7 IDEA集成Git7.1 环境准备在集成Git前,我们要先忽略一些文件,比如 为什么忽略它们,它们与实际项目无关,不参与服务器上部署运行,把它们忽略掉能够屏蔽IDE工具之间的差异 怎么忽略:
注意:以上方法经测试没有成功,换个方法再试? (3)在idea里面定位 7.2 初始化本地库创建Git本地库 ? 创建本地仓库之后 我们可以右键将文件加到暂存区 然后我们写代码,在我们创建java文件时会有提示: 它提示我们是否要将文件加入到git暂存区,我们可以直接add,当然也可以后面再加 写完代码后我们可以将整个模块加入到暂存区 然后我们可以将模块提交到本地库 ??????? 我们发现提交的信息把那些不重要的都忽略掉了 提交完后,文件又变成原来的颜色 ? 以上截图有些混乱,因为不是一个模块,在第一次测试时出现一个问题,忽略失败。所以后面又新建一个项目测试,不过大体上就是这个意思。 7.3 切换版本修改代码再次提交到本地库,这里我们可以不用先添加到暂存区然后再提交到本地库,可以直接提交到本地库,一步到位 点击左下角git-->Log,右键版本选中Checkout Revision即可切换版本? 7.4 创建分支可以右键模块创建: 也可以点击右下角的master进行创建,会弹出一个框,填写分支名称 7.5 切换分支?创建成功后我们发现右下角的master变成了hot-fix,并且我们可以直接在这切换分支 7.6 合并分支首先我们切换到hot-fix分支修改代码,然后我们切换到master分支,显然代码没有改变,这时我们选中左下角hot-fix的合并功能如下: 这样就能合并成功 7.7 合并冲突我们修改hot-fix分支的代码然后提及到本地库,再修改master分支的代码,这时再合并就会冲突: 将两边的代码移到中间,然后提交,它会自动提交到本地库 8 IDEA集成Gitee8.1 添加Gitee账号首先在idea中下载Gitee插件,在设置中找到Gitee然后添加用户 上面登录账户不能使用那个,要使用邮箱 8.2 分享项目到Gitee我们在Gitee远程库上就可以查看到我们提交的库了 8.3 推送代码到远程库首先修改带并且提交到本地库,然后我们在上面选中Git然后选中Push? 我们自定义一个码云仓库的链接 ? 值得注意的是:我们在修改代码前要注意查看本地代码和远程库代码是否一致,如果远程库已经修改了一些代码但是本地库又修改,就会冲突。我们建议如果远程库代码修改了,先将远程库pull到本地库,然后再修改,然后再push到远程库 8.4 拉取远程库代码并合并首先修改远程库的代码 然后直接点击上方的Git--->pull即可完成拉取 8.5 克隆Gitee代码到本地我们艺高人胆大把本地代码删了怎么办,那自然是跑路(不是)。因为我们在远程库保存着代码,所以我们不怕,下面我们将远程库代码克隆到本地 打开idea点击如下: 选中Gitee,idea甚至已经给我们列出了我们账号的各种项目,选中克隆即可,如果不是克隆我们自己的项目也没关系,我们复制链接也可以完成克隆 8.6 Gitee复制GitHub项目因为连接GitHub比较麻烦,我们可以将GitHub的项目复制到Gitee上 我们在新建仓库时会提示我们导入仓库? 我们拿到链接直接导入即可? 9 自建代码托管平台GitLab不建了,谁爱建谁建 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/28 3:37:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |