【教程】Git 标准工作流

news2024/11/5 22:10:24

目录

  • 前言
  • 建仓,拉仓,关联仓库
  • 修改代码
  • 更新本地仓库,并解决冲突
  • 提交代码,合入代码
  • 其他常用 Git 工作流
    • 删除本地仓库和远程仓库中的文件
    • 日志打印
    • commit 相关

前言

Git 是日常开发中常用的版本控制工具,配合代码托管仓库(如,Github,GitLab,Gitee 等)用来实现多人多版本的协作开发。

但是 Git 的命令纷繁复杂,多如累卵,不可能也不需要全部搞懂,只需要掌握常用的 Git 命令即可。

然而,单个 Git 命令不足以支撑一个完整的 Git 版本管理流程,因此本文主要介绍实际开发场景中,如何通过组合 Git 命令来实现一套完整的代码管理流程。

在这里插入图片描述

建仓,拉仓,关联仓库

在这里插入图片描述

  1. 建仓:一般开发场景中,会从远程主仓 fork 一份仓库到自己名下的远程仓库中。我们之后提交代码,并非直接向远程主仓提交,而是提交给远程个人仓库,由个人仓库提起向远程主仓的合并请求,来合入我们的新代码
  2. 克隆到本地:通过 git clone 将远程个人仓库克隆到本地
  3. 新建本地开发分支:执行 git checkout -b 本地分支名
  4. 关联远程个人仓库:执行 git branch --set-upstream-to=origin/远程个人仓库分支名
  5. 关联远程主仓,用来更新远程主仓最新的代码:执行git remote add upstream https://gitxxx.com/A/xxxx.git ,其中 upstream 为你给远程主仓取的名字,它和 origin 是同级的,一般我们也称远程主仓为上游仓库

修改代码

在这里插入图片描述

完成上述任务后,你就可以修改代码了。

更新本地仓库,并解决冲突

在这里插入图片描述

很多时候,在我们修改代码的时候,其他人也会给远程主仓提交合入代码,这个时候我们的代码就不是最新的。

所以我们需要更新我们的本地仓库,一般是一天更新一次。

更新的时候可能我们现在的代码会和更新的代码有冲突,这就需要我们手工的去解决这些冲突。如果没有,则直接合入本地仓库即可。

  1. 拉取远程主仓:执行 git fetch upstream
  2. 保存当前正在修改的代码:通过 git stash ,可以将你正在修改的代码先保存起来
  3. 合入拉取的代码:执行 git merge upstream/远程主仓分支名 会将该分支的新代码合入当前你的本地分支
  4. 恢复自己正在修改的代码:通过 git stash pop 将自己修改的代码恢复到当前工作区,如果和新代码有冲突,就可以在这个时候解决冲突了

提交代码,合入代码

在这里插入图片描述

  1. git add:将需要的文件添加到暂存区。如果要将所有修改内容都提交,则可以使用 git add *
  2. git commit:通过该指令将暂存区的内容提交到本地仓库中。一般情况下,执行 git commit -m “提交描述信息”
  3. git push:通过该指令将本地仓库的内容推送到远程个人仓库
  4. MR 或者 PR:远程个人仓库托管在对应的代码托管平台,这些平台都会提供 MR 或者 PR 的页面或功能,来完成将你修改的代码合入到远程仓库的最终代码中

其他常用 Git 工作流

删除本地仓库和远程仓库中的文件

git rm xxx # 删除文件
git rm -r yyy # 删除文件夹

git add *
git commit -m ""
git push

日志打印

# 以一行的方式显示日志
git log --oneline

# 打印最近 n 次日志
git log -n 5 # 打印最近 5 次日志

# 打印某个日期前的日志
git log --before="2023-01-01" # 打印 2023-01-01 前的日志

commit 相关

# 查看某次 commit 的改动
git show commitId

# 比较两次不同的 commit
git diff <commit-hash1> <commit-hash2>

# 新增修改,但不改变上一次 commit message
git commit --amend --no--edit

# 合并多次 commit 的内容
git rebase -i HEAD~3 # 合并最近三次 commit 的内容为一次,因图文限制,这里仅列出语法,不深入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+vue实现的任务管理系统(源码+L文)4-103

第4章 系统设计 4.1 总体功能设计 员工&#xff0c;经理&#xff0c;管理员都需要登录才能进入任务管理系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用者为员工和经理&#xff0c;对员工只能提供任务信息显示查询&…

vue2中使用vue-awesome-swiper实现轮播

swiper官方文档&#xff1a;Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 1.安装 注意&#xff1a;swiper和vue-awesome-swiper的版本一定一定一定要相对应&#xff0c;版本对应如下&#xff1a; Swiper 5-6 vue-awesome-swiper4.1.1(vue2) Swiper 4.x vue-awesome-swi…

Node.js 入门指南:从零开始构建全栈应用

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;node.js篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js-入门指南&#xff1a;从零开始构建全栈应用 前言 大家好&#xff0c;我是青山。作…

favicon是什么文件?如何制作网站ico图标?

一般我们做网站的话&#xff0c;都会制作一个独特的ico图标&#xff0c;命名为favicon.ico。这个ico图标一般会出现在浏览器网页标题前面。如下图红色箭头所示&#xff1a; 部分博客导航大全也会用到所收录网站的ico图标。比如boke123导航新收录的网站就不再使用网站首页缩略图…

“大跳水”的全新奥迪A3,精准狙击年轻人的心

文/王俣祺 导语&#xff1a;随着传统豪华品牌在国内市场的全面崩盘&#xff0c;奥迪再一次坐不住了。这次&#xff0c;奥迪“割肉”的目标瞄准了被称为“年轻人第一台豪车”的奥迪A3&#xff0c;这款车问世以来&#xff0c;就凭借出色的性能与品质收获了一大批年轻粉丝。如今&a…

两台手机如何提词呢,一台手机后置高清摄像一台手机前置提词+实时监测状态的解决方案来喽

拍视频只会用前置摄像头可不行啊&#xff0c; 后置高清才会更有流量&#xff0c; 你看哦&#xff0c;我用的是后置摄像头拍摄&#xff0c; 然后前面就用来提词&#xff0c; 它不光能提词&#xff0c; 和其他家不一样的是&#xff0c; 还能把后面手机画面投影到前面手机 这样呀&…

[SWPUCTF 2021 新生赛]easy_sql的write up

开启NSSCTF靶场&#xff0c;在浏览器中访问链接&#xff0c;看到让我们输入点什么还有标签页名字提示&#xff1a; "参数是wllm" 直接/?wllm1访问一下&#xff1a; 这里就直接用sqlmap直接爆破了&#xff1a; 查看数据库有哪些&#xff1a; python sqlmap.py -u …

Tr2 CYT2B75使用记录(二):GPIO、串口、CAN(FD)和busoff检测、看门狗和复位原因

目录 概述GPIO串口1.FIFO2.中断 CANFDRX Buffer and FIFO ElementTX Buffer Elementbusoff 检测 看门狗复位原因 待梳理 概述 GPIO 1.如何定位IO的作用 2.读取电平必须为输入模式 串口 熟悉手册串口特性如下&#xff1a; ■ 数据帧大小可从4位编程到16位 ■ STOP位的可编程…

Android13 系统/用户证书安装相关分析总结(二) 如何增加一个安装系统证书的接口

一、前言 接着上回说&#xff0c;最初是为了写一个SDK的接口&#xff0c;需求大致是增加证书安装卸载的接口&#xff08;系统、用户&#xff09;。于是了解了一下证书相关的处理逻辑&#xff0c;在了解了功能和流程之后&#xff0c;发现settings中支持安装的证书&#xff0c;只…

【Java语言】继承和多态(一)

继承 继承就是实现代码的复用&#xff1b;简而言之就是重复的代码作为父类&#xff08;基类或超类&#xff09;&#xff0c;而不同的可以作为子类&#xff08;派生类&#xff09;。如果子类想要继承父类的成员就一定需要extends进行修饰&#xff08;如&#xff1a;&#xff08;…

04_CC2530+Uart串口通信

04_CC2530UART串口通信 串口通信基本概念 串行通信: 数据字节一位位地依次传送的通信方式, 串行通信的速度慢, 但用的传输线条数少, 成本低&#xff0c;适用于远距离的数据传送并行通信: 数据字节的各位同事传送的通信方式, 优点是数据传送速度快, 缺点是占用的传输线条数多,…

【计算机网络安全】湖北大学–DNS欺骗实验

目录 0x00 ettercap-原理 0x01 ettercap-arp欺骗 0x02 ettercap-dns劫持 0x00 ettercap-原理 攻击者冒充域名服务器&#xff0c;然后把查询的IP地址设为攻击者的IP地址。这样的话&#xff0c;用户上网就只能看到攻击者的主页&#xff0c;而不是用户想要取得的网站。 首先&…

雷池社区版新版本功能防绕过人机验证解析

前两天&#xff0c;2024.10.31&#xff0c;雷池社区版更新7.1版本&#xff0c;其中有一个功能&#xff0c;新增请求防重放 更新记录&#xff1a;hhttps://docs.waf-ce.chaitin.cn/zh/%E7%89%88%E6%9C%AC%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95 仔细研究了这个需求&#xff0c;…

【深度学习基础】深入理解 卷积与卷积核

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 卷积 1.1 …

SpringBoot集成Shiro+Jwt+Redis

1. 概述 首先需要知道为什么使用 ShiroJwtRedis 进行登录认证和权限控制。 1. 为什么用Shiro&#xff1f; 主要用的是 shiro 的登录认证和权限控制功能。 Shiro 参见本栏目文章 &#x1f343;《Shiro实战》 2. 为什么用Jwt&#xff1f; Shiro 默认的 Session 机制来帮助实现…

基于Python的乡村居民信息管理系统【附源码】

基于Python的乡村居民信息管理系统 效果如下&#xff1a; 系统主页面 系统登录页面 管理员主页面 居民管理页面 政务学习页面 土地信息管理页面 个人信息管理页面 居民登陆页面 村委人员主页面 研究背景 随着信息技术的飞速发展和乡村振兴战略的深入实施&#xff0c;传统的乡…

HTML 基础标签——表单标签<form>

文章目录 1. `<form>` 标签:定义表单容器2. `<input>` 标签:多用途输入控件3. `<textarea>` 标签:多行文本输入框4. `<select>` 标签:下拉选择框5. `<option>` 标签:下拉菜单选项6. `<button>` 标签:按钮元素7. `<label>` 标签…

Debian的基本使用

前言 本人撰写的相关文档中&#xff0c;部分技术已经不再提供支持了&#xff08;不得不感慨&#xff0c;菜鸡的个人进步追不上技术更新啊&#xff09;&#xff0c;比如Centos、EasyExcel&#xff0c;虽然说目前仅使用还没有什么问题&#xff0c;但是还是要了解一下备用方案。 …

比亚迪能不能打败特斯拉?

文/孔文清 比亚迪在第三季度的财报发布后&#xff0c;首次在营收上超越了特斯拉&#xff0c;这是电动汽车行业的重要时刻&#xff0c;也反映了中国产业在全球市场中的崛起。 比亚迪在其2024年第三季度财报中首次实现了2011.2亿元的营业收入&#xff0c;相比特斯拉的1793亿元&a…

什么情况下,不推荐建立索引?

一般有以下几种情况不推荐建立索引&#xff1a; 1&#xff09;对于数据量很小的表 当表的数据量很小&#xff08;如几百条记录&#xff09;时&#xff0c;建立索引并不会显著提高查询性能&#xff0c;反而可能增加管理的复杂性&#xff1b; 2&#xff09;频繁更新的表 对于…