git代码管理操作全流程之一: 提交、更新、解决冲突、合并等操作

news/2024/12/29 12:34:00/

使用 Git 提交代码步骤

Step 1,检查自己的代码改动。执行 git commit -am"" 提交到本地仓库。注意写好准确的描述信息。

Step 2,执行 git pull --rebase,将当前分支的代码更新到远程仓库的最新版本。如果有冲突解决冲突。解决git冲突请见后续介绍。

Step 3,上述步骤执行结束,测试代码。在git bash 命令行窗口中用gitk命令查看提交的历史记录路径,一个分支需要保持为一条直线。检查无误,则执行 git push 提交本地内容到远程仓库。

注意:应当提倡多 commit 有限的 push

使用 Git 解决冲突的步骤

本地仓库git commit完毕,当执行git pull --rebase或者git rebase dev的时候出现冲突,解决步骤如下:

Step 1,在vs code中找到冲突提示,看清楚对应的逻辑选择合适的方式处理好冲突代码,解决冲突。将当前的所有冲突解决完之后,测试检测否有问题。如果没有进入下一步。

Step 2,执行 git add . 这个命令,将当下的改动添加到当前仓库。

Step 3,接着执行 git rebase --continue,确认冲突信息。进入到信息界面之后,如果想退出来继续处理存在的冲突按下 :q 退出即可。就可以接着在代码中处理冲突了。处理完后继续Step2 -> Step3的循环,直到所有冲突处理结束(系统会提示: Successfully rebased and updated...)。

Step 4,执行 git push 提交代码到远程仓库,如果提示 [rejected] ,则看看是否本地版本就是最新可用的版本,如果是则执行 git push --force 命令即可。

注意: 修改完冲突后push之前不要再 pull 代码,这会出错。

使用 Git 合并分支的步骤

这里是基于 rebase 合并分支的步骤。假定将 rayTracer 分支合并到 dev 分支。

注意: 合并前,要确认 rayTracer分支代码提交记录已经全部push到远程仓库。

git提交步骤请见上面的相关介绍。

Step 1,执行 git checkout dev 命令切换到dev分支。再执行 git pull --rebase 将dev分支的本地仓库更新到最新,也就是和远程仓库保持一致。

Step 2,执行 git checkout rayTracer 切换到 rayTracer 分支,接着执行 git rebase dev 命令。如果没有冲突,执行 git push 命令将当前操作同步到远程仓库。如果出现冲突,解决git冲突请见上面的相关介绍,记得解决完冲突测试代码正确性并push到远程仓库。

Step 3,执行 git checkout dev 命令切换到dev分支,然后执行 git merge rayTracer 命令 合并rayTracer分支代码到dev。因为前几步的操作已经解决了冲突和错误,所以正常情况这一步执行完下不会有其他问题。不过我习惯还是检查一下 提交的历史记录是不是直线(gitk命令),以及代码也基本运行测试一下。

Step 4,在当前的 dev 分支执行 git push 命令,将当前的合并操作同步到远程仓库。

Step 5,执行 git checkout rayTracer 再切换回 rayTracer 分支。防止在dev分支误操作。

使用 Git Pick提交记录的步骤

对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。

这时分两种情况:

1. 你需要另一个分支的所有代码变动,那么就采用合并(git merge)。

2. 你只需要部分代码变动(某几个提交),这时就可以采用 Cherry pick 来实现这个需求。

更多信息请见: https://ruanyifeng.com/blog/2020/04/git-cherry-pick.html


http://www.ppmy.cn/news/60307.html

相关文章

几种常见时间复杂度实例分析

多项式量级 常量阶 O(1) 对数阶 O(logn) 线性阶 O(n) 线性对数阶 O(nlogn) 平方阶O(n2 ),立方阶O(n3 )...k次方阶O(nk) 非多项式量级(NP(Non-Deterministic Polynomial,非确定多项式)问题) 指数阶O(2n) 阶乘阶…

“裸奔”时代下,我们该如何保护网络隐私?

当我们在互联网上进行各种活动时,我们的个人信息和数据可能会被攻击者窃取或盗用。为了保护我们的隐私和数据安全,以下是一些实用的技巧和工具,可以帮助您应对网络攻击、数据泄露和隐私侵犯的问题: 使用强密码:使用独特…

基于jeecgboot的OA日程安排开发(一)

日程安排也是OA里的一项重要功能,所以基于jeecgboot开发这个日程安排。 日程安排主要涉及以下几个方面: 1、数据库方面,主要是分日历与日程 日历可以分个人日历与工作日历,一般情况下,个人日历只给自己查看&#xff0…

Nacos原理(注册中心和配置中心)

服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化…

从零开始带你开发橙光游戏AVG框架(仿 葬花 )

来源 从零开始带你开发橙光游戏AVG框架【55课数 收费】 从零开始带你开发橙光游戏AVG框架 unity教程【16课数 免费】 介绍 QuickSheet使用 bug 包报错 可能是我换了untiy版本的原因 Manual sovle bug ICSharpCode.SharpZipLib重复 导了一个文件夹,有自己的库…

shell的基础学习二

文章目录 一、Shell 数组二、Shell 基本运算符三、Shell echo命令四、Shell printf 命令五、Shell test 命令总结 一、Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小&#xff08…

Actuator Information Leakage

Actuator Information Leakage Spring Boot < 1.5 默认未授权访问所有端点 Spring Boot >= 1.5 默认只允许访问/health和/info端点,但是此安全性通常被应用程序开发人员禁用 路径 描述 /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 /b…

【LeetCode】376. 摆动序列

376. 摆动序列 思路 首先&#xff0c;我们可以将摆动序列分为两种&#xff1a; 「上升摆动序列」&#xff0c;当且仅当该序列是摆动序列&#xff0c;且最后一个元素呈上升趋势。如序列 [1,3,2,4] 即为「上升摆动序列」。 「下降摆动序列」&#xff0c;当且仅当该序列是摆动序…