高效使用git流程分享

news2024/11/16 1:56:01

准备

假设你已经 clone 了当前仓库,并且你的终端位置已经位于仓库目录中。

查询状态

查询状态常用的命令有 git statusgit branch

前者用于查询更改文件情况,后者用于展示所有分支。

chatbot-system$ git status
On branch develop
Your branch is up to date with 'origin/develop'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        doc/

nothing added to commit but untracked files present (use "git add" to track)
chatbot-system$ git branch
* develop
  lhy_dev
  main
  master

这里星号表示你当前所在的分支。

写代码之前

# 首先安装 pre-commit
pip install pre-commit          # 安装 pre-commit 用于检查提交
pre-commit install              # 将 pre-commit 挂载到 git 操作

git pull                        # 更新代码,始终基于最新版本进行开发

假设你现在已经在 develop 分支了,如果不在,请执行 git checkout develop

然后,你需要创建你自己的分支,进行代码开发。

git checkout -b demo_dev        # 请自行把 demo 换成你的标识符,表示基于当前分支创建分支 demo_dev 并且切换到新分支上

#例如:
git checkout -b otter_dev 

写代码之后

你这时候已经写完了代码,你需要进行如下操作。

git add <file>                  # 添加 <file>,表示准备提交这个文件,如果 <file> 是个目录,表示准备(递归地)提交这个目录下的所有文件
git commit -m <commit-message>  # 提交,<commit-message> 需要是字符串,如 "add function",用来给你本次的提交进行备注

通常来说,git commit 可能会失败,因为 pre-commit 的检查。

但是因为 pre-commit 会尽力去自动修复代码问题,因此这时候你应该尝试重复前面的 addcommit 步骤。

git add .
git commit -m "update handgesture"
git pull (更新使获取最新的仓库代码,此步可选)
git push

提交到远程

如果远程没有你的分支,你一般需要

git push -u origin demo_dev

git push -u origin otter_dev

这样就能提交,如果已经有了你的分支,你通常只需要 git push 即可。

(如果提示你远程存在冲突,那么请额外加上 -f 参数)

开始下一轮开发

如果你的提交已经通过 Merge Request 进入了 develop 分支,一般需要你更新 develop 分支,并重新创建你自己的分支,当然你也可以使用 rebase

假设你目前处于 develop 分支

删除原分支并重新创建

git pull
git branch -D demo_dev
git checkout -b demo_dev

使用 rebase 来解决

git pull
git checkout demo_dev
git rebase develop

其他问题

关于在github提pr

  • pr名称要概括内容
  • 一定要解决所有冲突
    • 一般是rebase main解决,保证合并、无冲突
    • 正确可merge的图
      在这里插入图片描述
# 我现在在自己的分支上,然后我需要执行以下四行,
# 确保最终提交时已经更新完毕没有冲突且在自己的分支上提交
git checkout main
git pull
git checkout [your_branch]
git rebase main
  • 当提交pr的时候没有显示绿色对号可以成功提交时,可能是中途别人提交了新的commit,导致版本不一致,此时需要更新一下本地版本

    # 此时是在自己的分支下
    # 从上游更新一下最新代码
    git fetch upstream
    
    # 把远程的最新代码合并到自己的分支中
    git merge upstream/main
    
    # 再执行git push推送上去
    git push
    
    # 此时再回到网页快点去提交pr就可以了;
    
  • 其他

# 查看历史记录
git log
# 输入q就可以退出了

# 可以学一下vim
	# 打开vim的时候默认不能写东西
	# 按a或者i进入编辑模式,写几个字的说明
	# 先按esc退出键退出编辑模式,再输入英文状态的冒号和wq两个字母(write,quit),代表保存并退出,然后按回车即可完成编辑,退出到终端目录
	:wq
	
# 假设(要恢复的)文件是main.py——》从最后(最新)一次的提交里把main.py复制到工作区(会覆盖)
git checkout HEAD main.py
  • 解决rebase的冲突
当在执行 git rebase 过程中遇到冲突时,Git会暂停rebase操作,并告诉你需要手动解决这些冲突。解决冲突的步骤如下:

打开有冲突的文件,可以使用代码编辑器或文本编辑器进行编辑。
在冲突标记 <<<<<<<, =======, >>>>>>> 之间进行修改,根据需要保留或删除代码。
==保存文件后,使用 git add 命令标记已解决的冲突文件==。
例如:

bash
Copy code
git add path/to/conflicted_file
==继续执行 git rebase --continue 命令,告诉Git你已经解决了冲突并且可以继续rebase操作==。
如果你不想解决这个冲突并且直接跳过这个提交,你可以使用 git rebase --skip 命令来跳过当前提交。

如果你想放弃rebase操作并返回到rebase之前的状态,可以使用 git rebase --abort 命令来中止rebase操作,回到rebase之前的状态。

请注意,在执行 git rebase 过程中,如果有多个提交冲突,你需要逐个解决并标记它们,然后继续rebase操作直到所有冲突解决完成。

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

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

相关文章

RedisCluster集群中的插槽为什么是16384个?

RedisCluster集群中的插槽为什么是16384个&#xff1f; CRC16的算法原理。 1.根据CRC16的标准选择初值CRCIn的值2.将数据的第一个字节与CRCIn高8位异或3.判断最高位&#xff0c;若该位为0左移一位&#xff0c;若为1左移一位再与多项式Hex码异或4.重复3至9位全部移位计算结束5…

PHP姓名快速匿名化工具(重组脱敏)

PHP姓名重组工具(脱敏/匿名化工具) 将excel数据姓名列粘贴提交&#xff0c;得到随机姓随机中间字随机尾字的重组姓名 那些年自用瞎搞的代码&#xff0c;今日整理成网页交提交得到结果的交互功能分享。 <?php //PHP姓名重组工具(脱敏/匿名化工具) //将excel数据姓名列粘贴…

前端面试拼图-知识广度

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录并添加部分可参考的文档&#xff0c;如下... 1. 移动端H5 click有300ms延迟&#xff0c; 如何解决&#xff1f; 背景&#xff1a;double tap to zoom 移动端H5中的300ms点击延迟问题通常是由浏览…

Obsidian使用200+插件与70+种主题分享

主题资源 下载方式一&#xff1a; 网盘下载 密码:a3eu 下载方式二&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1fOgP8lY29sYxkUAbTlQQCw 提取码&#xff1a;qhxa 下载解压打开红色框文件夹 上面的是插件&#xff0c;下面的是主题 以下介绍安装主题 打开Obsidi…

定义一个符号常量,并计算

这段代码的输出结果是什么 #include <stdio.h> #define PI 32 int main() { int iPI*2; printf("i%d\n",i);} 是7。 我问了一下AI&#xff0c;AI也回答错了&#xff0c;这是个值得注意的地方。

华为鸿蒙生态杀疯了 大厂高薪急聘鸿蒙开发者

前言 最近有接收到个别小伙伴的疑惑&#xff0c;说鸿蒙现在前景不好就业又困难&#xff0c;为什么我偏偏选择了他呢&#xff1f; 但其实真正了解鸿蒙前景的小伙伴都知道&#xff0c;鸿蒙系统强势来袭&#xff0c;华为“纯血鸿蒙”技术开发人员急缺&#xff0c;薪资待遇极好&a…

云原生(四)、Docker-Compose

Docker-Compose Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个简单的 YAML 文件来配置应用程序的服务、网络和卷&#xff0c;从而使得在不同环境中轻松部署应用程序变得更加简单和可靠。 Docker Compose 主要由以下几个核心组件组成&#xf…

DockerHub搜索并拉取一个Redis镜像

1&#xff09;去DockerHub搜索Redis镜像 2&#xff09;查看Redis镜像的名称和版本 3&#xff09;利用docker pull命令拉取镜像 4&#xff09;利用docker save命令将 redis:latest打包为一个redis.tar包 5&#xff09;利用docker rmi 删除本地的redis:latest 6&#xff09;利用…

小鹏MONA将至:10 - 15万级,用性价比打新势力,用智驾打比亚迪

‍ 作者 |老缅 编辑 |德新 小鹏的全新品牌即将发布&#xff0c;10-15万级也能有高等级智能驾驶。 3月16日在中国电动汽车百人会论坛2024上&#xff0c;小鹏汽车董事长、CEO何小鹏提出&#xff1a;“下一个十年将是智能化的十年。未来18个月内高阶智驾的拐点将到来”。 所谓…

Git——GitHub远端协作详解

目录 Git&GitHub1、将内容Push到GitHub上1.1、在GitHub上创建新项目1.2、upstream1.3、如果不想要相同的分支名称 2、Pull下载更新2.1、Fetch指令2.2、Fetch原理2.3、Pull指令2.4、PullRebase 3、为什么有时候推不上去3.1、问题复现3.2、解决方案一&#xff1a;先拉再推3.3…

深度学习神经网络相关记录《二》

如何判断模型是一个好模型&#xff1f; 模型预测效果&#xff0c;也就是模型预测的准确率运算速度&#xff1b;能够处理大量数据、短时间内急速学习、可以实时进行预测&#xff0c;是机器学习的重要优势&#xff1b;可解释性&#xff1b;深度学习已经不太关系这一点了&#xf…

面试算法-51-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {dfs(root);re…

苍穹外卖-day09:用户端历史订单模块(理解业务逻辑),商家端订单管理模块(理解业务逻辑),校验收货地址是否超出配送范围(相关API)

用户端历史订单模块 1. 查询历史订单&#xff08;分页查询&#xff09; 1.1 需求分析和设计 产品原型&#xff1a; 业务规则 分页查询历史订单可以根据订单状态查询展示订单数据时&#xff0c;需要展示的数据包括&#xff1a;下单时间、订单状态、订单金额、订单明细&#…

“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用教程

原文链接&#xff1a;“SRP模型”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597452&idx5&snf723d9e5858a269d00e15dbe2c7d3dc0&chksmfa823c6…

202303 CSP认证 | LDAP

LDAP 好好好&#xff0c;难度直线上升&#xff0c;是一道又有了字符串处理味道的第三题 第一把写官网40分&#xff0c;acwing TLE且只通过了一道数据…本文是自己这题奋斗过程 的一个记录 先贴个40分的代码&#xff1a; #include<bits/stdc.h> using namespace std; t…

2024全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开 定制版红娘交友平台小程序源码&#xff0c;很牛逼的东西&#xff0c;虽然是小程序&#xff0c;但是有700多M大&…

LeetCode每日一题【59.螺旋矩阵Ⅱ】

思路&#xff1a;模拟&#xff0c;给出上下左右4个方向的边界&#xff0c;逐步收缩 class Solution { public:vector<vector<int>> generateMatrix(int n) {int left 0;int right n-1;int top 0;int bottom n-1;int k 1;vector<vector<int>> ans…

七、链表问题(中)

2、两数相加&#xff08;中等&#xff09; 题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以…

window 查看特定端口占用并停掉

要查看Windows上特定端口的占用情况并停止相关进程&#xff0c;你可以使用以下步骤&#xff1a; 查看端口占用&#xff1a; 首先&#xff0c;你可以使用netstat命令来查看特定端口的占用情况。假设你想要查看端口号为8080的情况&#xff0c;你可以运行以下命令&#xff1a; net…

力扣● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 注意审题&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 删除最少的字符使两者相同&#xff0c;说明留下来的就是最大公共子序列。不要求…