一步到位!快速精通Git工作流及实战技巧详解

这篇具有很好参考价值的文章主要介绍了一步到位!快速精通Git工作流及实战技巧详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git是一个分布式版本控制系统。

1、git的应用场景

1.备份

小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。

场景二:代码还原

这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的代码已经回不到从前了。回滚版本。

场景三:协同开发

场景四:追溯问题代码的编写人和编写时间

  1. 打开Git Bash

  2. 设置用户信息 git config -global user.name "huan" git config -global user.email "1320156914@qq.com"

2、安装git

安装git

 

brew install git

查看git版本

 

git --version

如果查看git版本时遇到这个问题

zhouchenghuan@zhoucheuandembp ~ % git –version

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

这个错误信息表明你的Mac电脑上的Xcode Command Line Tools没有正确安装或激活。你可以通过以下步骤来修复这个问题:

xcode-select --install

然后重装git

安装成功

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

3、Git基础使用

获取本地仓库

git init

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

每提交一次(git commit) 就会增加一个新的版本。

  1. git add (工作区-> 暂存区)

  2. git commit (暂存区->本地仓库)

查看修改的状态

作用:查看的修改的状态(暂存区、工作区)

命令形式:git status

查看日志:git log

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

git branch 查看本地分支

git branch 分支名 创建本地分支

git log 比branch好用一些,查看非常直观。

git log 查看日志

git -log 以精简的方式显示提交记录

git checkout 切换分支

如 git checkout master 切换到主分支

git checkout -b 切换并创建分支

git merge 'dev01' 

git reset --hard commitID 版本回退 

作用是切换版本

commitID可以使用git -log指令查看

如何查看已经删除的记录?

git reflog 这个指令可以看到已经删除的提交记录

开发中分支使用原则与流程

Master (生产)分支

线上分支,主分支,中小规模项目作为线上运行的应用对应的分支。

develop(开发)分支

是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master。准备上线。

Feature 分支

从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。

hotfix分支

从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。

解决冲突

当两个分支上的同一个文件可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决:

1、我们将文件修改成我们期望的值

2、将修改后的文件加入暂存区(add)

3、提交到仓库(commit)

git branch -d dev02 删除分支

git branch -D dev02 强制删除分支

git merge 合并分支

比如你要将dev01合并到master,那么你先 git checkout master ,再git merge dev01

4、Git远程仓库

常见的托管服务 github、码云 gitee,个人一般用gitee,企业用gitLab。

https://gitee.com 注册账号

新建一个仓库,填一下仓库名,其他不要填

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

git remote add origin <远程仓库地址> 添加远程仓库

git remote 查看远程仓库

git push -u origin "master" 推送到远程仓库 (如果不在master分支则要切换master分支)

git push -f origin master 强制推送到远程仓库

git fetch 它的主要功能是从远程仓库获取最新的提交信息,但并不会自动将这些更新合并到本地的当前分支。

git clone [远程仓库地址] [本地目录名称(可选)] 用于从远程仓库复制一份完整的项目到本地,这个是比较常见的,一般第一次拉整个完整项目,后面都是用git fetch刷新。

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

git fetch [remote]

抓取指令就是把仓库里的更新都抓取到本地,不会进行合并。

主要用于从远程仓库获取最新的数据(包括分支、标签等信息),但并不会自动合并到本地当前分支。执行此命令后,你可以查看远程仓库的更新内容,并在确认无误后选择是否将这些更新合并到本地。

应用场景:比如前几天我同事创建了一个项目,我第一次拉下来就是git clone,今天他又更新了,此时我只用git fetch把他更新的那部份代码拉下来就行了,不需要重新拉取整个项目。

git pull 

拉取指令就是将远程仓库的修改拉到本地并自动进行合并,等同于fetch+merge

如果不指定远端名称和分支名,则抓取所有并更新当前分支

解决远程仓库冲突

a用户在本地修改代码后有限推送到远程仓库,此时b用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时b用户晚于a用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

解决合并冲突

在一段时间,a、用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。

a用户在本地修改代码后优先推送到远程仓库,此时b用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时b用户晚于a用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

你找到那个冲突的文件,改成你想要的样子,然后git add <file>,最后git commit -m "commit message"就好了。

5、idea集成git

1、在settings里搜索git,输入git安装路径,点击“test”,如果成功的话会在下面显示git版本。

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

选择ssh地址 

 一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

 文章来源地址https://www.toymoban.com/news/detail-840238.html

2、gitignore

.gitignore 文件中,每一行都指定了一个模式,Git 将会根据这些模式来决定哪些内容不应该被添加到版本库中。例如:

• *.log:表示忽略所有扩展名为 .log 的文件。

• build/:表示忽略 build 目录及其下的所有文件和子目录。

• temp.txt:表示忽略名为 temp.txt 的具体文件。

这样做的好处在于,可以避免一些临时文件、编译生成的文件、敏感信息文件(如密钥文件)等被误提交到版本库中,从而保护隐私并减少仓库的冗余数据。

3、idea创建仓库

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

这个✅就是commit 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

提交成功 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

可以看到每次提交的内容 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

 一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

推送至远程仓库 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验

首次推送时,还没有绑定远程仓库,点击define remote,输入远程仓库地址

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

填入远程仓库的这个地址

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

成功推送 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

可以看到gitee远程仓库里已经成功收到了我们刚刚从本地仓库推送过去的代码 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

创建分支 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

如果你想把的dev02合并至dev01,那你就切换到dev01,选择merge dev02 into dev01

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

观察同事写了什么代码 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

git操作流程 

一步到位!快速精通Git工作流及实战技巧详解,git,版本控制,gitee,Git最佳实践,Git冲突解决,Git教程,Git实战经验 

命令如下:

1.clone (克隆):从远程仓库中克隆代码到本地仓库

2.checkout(检出):从本地仓库中检出一个仓库分支然后进行修订

3.add(添加):在提交前先将代码提交到暂存区

4.commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本

5.fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少

6.pull(拉取):从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当于fetch+merge

7.push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。

6、实战

同事创建了仓库,新建了dev分支,叫我把代码拉一下。请问怎么做?

实现思路:

1、git clone <同事仓库的SSH地址>

2、git checkout dev 切换分支

3、git pull origin dev 更新分支

4、git checkout -b dev-01 创建并切换至自己的分支,在自己的分支上修改

5、git add. 

6、git commit -m "描述你的更改内容" 

7、git rebase dev 在推送前确保你的分支包含了dev分支的最新变更

8、git push origin dev-01 检查过代码和同事交流过确认没问题,将你的更改推送到远程仓库的个人分支

 

 

到了这里,关于一步到位!快速精通Git工作流及实战技巧详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Core Animation实战三(图层几何学),【一步教学,一步到位

    //calculate hour hand angle //calculate minute hand angle CGFloat minsAngle = (components.minute / 60.0) * M_PI * 2.0; //calculate second hand angle CGFloat secsAngle = (components.second / 60.0) * M_PI * 2.0; //设置锚点 self.hourLabel.layer.anchorPoint =self.minuteLabel.layer.anchorPoint =self.secondLabel.layer.anchorPoint = CGPointMake(0.5f, 0.9f); //r

    2024年04月25日
    浏览(27)
  • 用OPENCV,C++实现直线卡尺工具原理,一步到位

    不多逼逼,直接上步骤 Step1:根据给定的卡尺数,计算直线上的间断点,并保留间断点的位置,并返回。 Step2:在间断上生成若干个矩形卡尺工具,与直线垂直: Step3:计算每个卡尺矩形的内部点位集合,存放在二维数组里,如图。从起始点进行遍历,沿着两个方向遍历。

    2024年04月17日
    浏览(22)
  • MYSQL的卸载、下载、安装、配置一步到位(超详细教程)

    MYSQL的卸载、下载、安装、配置一步到位(超详细教程) 一、卸载 1.控制面板卸载 全部卸载 2.卸载数据文件 在安装的时候会有安装地址和数据库地址 找到自己安装数据库的地址,删除MySQL里面的内容 3.删除环境变量 此电脑–属性–高级系统设置–环境变量–系统变量–path(双击

    2024年02月08日
    浏览(31)
  • 【1】STM32·HAL库·新建工程模板【一步到位】

    目录 一、获取官方固件包 二、新建工程文件夹 1、新建文件夹 2、拷贝/新建工程相关文件 2.1、Drivers文件夹 2.2、Projects文件夹 2.3、User文件夹 三、新建工程框架 1、新建工程 2、保存工程 3、选择主控型号 4、删除文件夹 四、添加文件 1、设置工程名和分组名 2、添加启动文件

    2024年04月25日
    浏览(19)
  • 【Spring Boot】项目端口号冲突解决方法,一步到位

    启动项目遇到以下问题: Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1 找到要启动的项目的配置文件 application.properties ,没有的话可以在 resource

    2024年02月02日
    浏览(35)
  • 双系统安装ubuntu 22.04 LTS(一步到位)

            作为一个拥有两次都是一次成功安装好双系统的经验的人,我觉得我可以借这个文章仔细讲述一下,让大家都可以双系统安装都是一次成功。为什么有着两次安装经验呢,第一次安装完成后由于电脑的内存不太够了,然后重新装了一个固态和机械硬盘,再次安装了

    2024年01月23日
    浏览(43)
  • 【一步教学,一步到位】花里胡哨的3D翻页卡片,隔壁产品都馋哭

    with(cardShadowSizeFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } cardShadowDistanceFunc = CardShadowDistanceFunc() with(cardShadowDistanceFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } } 复制代码 2.5.3 阴影变化 为了更好地模拟3D效果,卡片阴影

    2024年04月14日
    浏览(29)
  • 一步到位——Node版本管理神器nvm安装教程(2023最新)

    Node的安装是许多学习前端的小伙伴的必经之路,我们可能会遇到需要切换node版本的情况,卸载node再安装另一个显然不够优雅,因此nvm的出现极大提高我们切换node的效率。 然而,在nvm的安装过程中有很多坑,许多新手非常容易踩雷,那么接下来让我带领你们, 一次到位安装

    2024年02月04日
    浏览(39)
  • 手机termux免root安装kali:一步到位+图形界面

    1.工具: 安卓(包括鸿蒙)手机、WiFi、充足的电量、脑子 2.浏览器搜索termux,vnc viewer,下载安装。 3.对抗华为纯净模式需要一些操作,先断网,弹窗提示先不开,等到继续安装的时候连上网,智能检测过后就可以了(termux正常版本可以通过智能监测,失败了就说明安装包是

    2024年02月03日
    浏览(35)
  • ICRA 2023 | 最新激光雷达-相机联合内外参标定,一步到位!

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到石头,为大家分享ICRA 2023最新的激光雷达-相机的联合标定方法,可同时标定内参和外参。如果您有相关工作需要分享,请在文末联系我们! 点击进入→ 自动驾驶之心【多

    2024年02月12日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包