git 实际开发中使用-解决问题

news/2024/11/28 22:36:38/

前言

  • git代码版本管理工具,打破常规的物理传输,更新,合并,回滚提高了开发效率和可追溯性。

  • 网上的资料会把所有的命令都很全也很多,导致对刚刚了解的同学不友好,很难实际使用。

  • 每个人都有自己使用git的习惯,本篇文章以自己遇见的问题出发,供大家参考使用。

  • 这篇文章主要记录自己实际开发中的git基本使用,原因和解决。

实际使用

1.第一次开发建立自己分支-创建自己分支一般自己名字首字母

// 我们在本地创建自己分支-创建并切换到这个分支(他会把主分支代码带过来),这个时候你就和当前主分支代码一样
git checkout -b xxx
// 当我们开发完一个功能,或者一个模块就可以提交了
git add .
// 计较到暂存区的备注信息-写清楚方便后期出问题回滚
git commit -m "你本次提交的代码备注信息"
// 提交到远程仓库-第一次提交会报错正常,复制它提供的命令即可
git push

2.把自己分支代码复制到主分支比如-master

// 切换到主分支master
git checkout master
// 拉取主分支远程仓库代码-因为多人开发,你要保证自己本地主分支要和远程主分支代码一样,才不会出错
git pull
// 把需要合并的分支合并过来
git merge xxx
// 这个时候不出意外一般都会出意外,不要慌。
// 第一种情况,会出现一个弹框,第一行是黄色的字有你分支名字,下面有几行看不懂的文字。
// 这主要是因为本地仓库的文件跟远程端文件有冲突造成的,注释为什么合并。先不要:wq
// 我们应该在英文输入法的前提下。按下键盘i键,发现第一行信息可以删,备注本次合并原因
// 完了之后按下ESC键,输入:wq 按下回车键,最后在提交记录中就会看见这次备注信息。
// 第二种情况 代码冲突,会在git窗口命令最后面(master/忘记了)形式出现,解决冲突即可。
// 来到vscode 工作树,(左边第三个),点击屏幕是分成3份,上面2份,下面一份(是最终结果)
// 我们可以点击上面2份中一个自己想要代码,右上角3个点使用代码,点击下面的接受合并,就解决完一个冲突。
// 解决完之后我会提交记录一次
git add .
git commit -m "解决什么功能合并冲突"
// 将本地主分支提到远程,在远程提交记录中就会发现刚刚的提交记录
git push

3.远程分支强制覆盖本地分支

// 把远程dev分支覆盖到本地dev分支
git reset --hard origin/dev
// 把远程分支覆盖到本地任意一个分支-可以随意组合
// git pull --force <远程主机名> <远程分支名> :<本地分支名>
git pull --force origin dev:dev

4.删除远程分支或本地分支

// 删除本地分支-删除本地dev分支
git branch --delete dev
//简写
git branch -d dev
// 删除远程仓库分支-删除远程dev分支,也会删除追踪分支
git push origin --delete dev

5.代码版本回滚-来到需要回滚的分支(比如qh)

// 仔细查看本地commit提交记录,确定好要回滚版本
// 查看本地详细的提交记录-会有一长串版本号
git log
// 查看本地简略的提交记录-会有版本号
git reflog
// 确定好自己要回滚的版本-选择当前的版本号当前代码回滚之后还在代码就会在当前版本
// 他是有2种方式回滚-如果是代码错了救不了了回滚肯定是使用第二个--hard不要错误代码
// git reset --soft 版本号-把指针回退到指定邦本,会保留之前代码
// git reset --hard 版本号-把指针回退到指定邦本,代码不保留(回滚版本之后写的代码都会删除)
git reset --hard 版本号
// 此时需要把本地回滚分支代码同步到远程仓库(qh远程仓库名)
git push -f origin qh
// 简写 git push -f
// 此时远程的分支提交记录也会覆盖掉,就完成代码版本回滚
​

6.其他命令

// 拉取远程仓库代码-第一次拉取
git clone 远程仓库地址
// 列出本地存在分支,当前分支用*标记
git branch
// 查看远程仓库分支列表
git branch -r
// 查看远程仓库和本地仓库所有分支
git branch -a
// 查看本地分支的最后一次提交
git branch -v
// 查看本地哪些分支已经合并到当前分支
git branch --merged
// 查看所有未合并工作的分支
git branch --no -merged

注意:

1.git操作是不允许键盘的复制粘贴,可以使用鼠标的复制粘贴。

2.什么时候都要注意键盘的中英文输入法格式。

2.每次提交都应该写清楚为什么提交,为什么合并(最好是一个功能或者页面),方便回滚。

3.不管什么时候,报错,冲突,先不要慌。先翻译一下,看不懂就直接复制去百度搜,看是什么。

4.只要是有提交记录,和代码。代码崩了不要急,怎么样都可以回滚过去的。


总结:

经过这一趟流程下来相信你也对 git 实际开发中使用-解决问题 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕


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

相关文章

numpy中transpose详解

transpose用于numpy中高维度数组的轴变换&#xff0c;在二维情况下就是通常说的转置。该方法很不好理解&#xff0c;本文详细介绍该方法。 该方法有两个实现&#xff0c;分别是numpy.ndarray.transpose和numpy.transpose&#xff0c;两者分别是类成员方法和独立的方法&#xf…

python字符编码

目录 ❤ 前言 文本编辑器存取文件的原理&#xff08;nodepad&#xff0c;pycharm&#xff0c;word&#xff09; python解释器执行py文件的原理 &#xff0c;例如python test.py 总结 ❤ 什么是字符编码? ASCII MBCS Unicode ❤ 字符编码的发展史 阶段一: 现代计算…

一篇文章看懂C++三大特性——多态的定义和使用

目录 前文 一&#xff0c;什么是多态&#xff1f; 1.1 多态的概念 二&#xff0c; 多态的定义及实现 2.1 多态的构成条件 2.2 虚函数 2.3 虚函数的重写 2.3.1 虚函数重写的两个例外 2.4 C override 和 final 2.5 重载,重写(覆盖),隐藏(重定义)的区别 三&#xff0c;抽…

Pandas高级操作,建议收藏(一)

在数据分析和数据建模的过程中需要对数据进行清洗和整理等工作&#xff0c;有时需要对数据增删字段。下面为大家介绍Pandas对数据的复杂查询、数据类型转换、数据排序的使用。 复杂查询 实际业务需求往往需要按照一定的条件甚至复杂的组合条件来查询数据,接下来为大家介绍如何…

UE4 C++编写自定义动画蓝图节点

UE中自带的动画蓝图节点有限&#xff0c;在实现一些功能时需要通过C编写一些自定义的动画蓝图节点&#xff0c;本文就来讲解其基础实现&#xff0c;自定义节点最终效果如下&#xff1a; 源文件下载&#xff1a;https://download.csdn.net/download/grayrail/87654290 1.流程简…

【华为OD机试真题】猜字谜(javapython)

猜字谜 时间限制:1s空间限制:256MB 限定浯言:不限 题目描述: 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…

mac电脑配置adb

1、打开mac的terminal终端&#xff0c;输入 cd ~/ 2、输入 touch .bash_profile&#xff0c;如果没有.bash_profile这个文件&#xff0c;则创建一个这个文件 3、输入 open .bash_profile &#xff0c;打开创建的.bash_profile 文件&#xff0c;此时应该弹出一个文本编辑框&am…

【问题解决】glob.glob 如何匹配所有子文件夹下的文件 —— recursive=True

一、仅匹配一级目录下的文件 import glob label_dir /data/part1/dir1/*.txt datas glob.glob(label_dir) print(datas) >>> [/data/part1/dir1/001.txt, /data/part1/dir1/002.txt]二、匹配多级文件夹下的文件 glob 模块在 python3.5 之后就支持了匹配所有子文件…