当前位置: 首页 > article >正文

【Git】Git在Unity中使用时的问题记录

个人向笔记。

(为什么没截图,因为公司电脑没法截图!)

1 前言

        主要记录在使用Git协同开发时的各种问题,方便以后查阅。

2 记录

2.1  合并冲突

        git pull下来后直接给合并了,麻了。若不想直接合并应该先把分支git fetch下来,需要合并再git merge。回到问题,发生冲突后命令行标题的分支后面会有Merging的表示大概是这样:

xxxxx xxxx /xx/x/x/x/xx/x/x/x/x/x (分支名|MERGING)
$

这就是冲突了,需要我们去手动解决冲突,所以分支处于Merging状态。

2.1.1 取消合并

        我们可以选择输入

git merge --abort

来终止这次合并,还原为没有合并的状态,但拉取的分支还是存在,只是取消了合并操作。

2.1.2 处理冲突合并

        我们也可以选择去处理分支,输入git status查看状态,其会列出有哪些文件冲突了。之后去编辑文件即可,可以选择直接在目录中找到文件选择合适的方式打开它来编辑,或者在命令行界面通过vim命令编辑:

vim <路径/文件名>

里面通常会有git添加的"<<<<<<<<<"、"==========="、">>>>>>>>>>>"标识,以"======"为分界,前面的内容是本地修改内容,后面的内容是拉取修改的内容,这两块内容即是我们与拉取冲突的内容。最简单的方法是,删除其中一块内容(git添加的标识也要删除),保留其中一块,即二选一。或者选择两者都保存,即合并在一起,但是!合并并不是说把标识一删就完事,对于简单内容,我们可以直接删除标识,保留两份内容,但也有复杂的情况不能简单这么做,接下来举例说明:

比如先有.txt文件:

AAAAA
FFFFF
ZZZZZ

我们这里假设这种情况:上为AAAAA,下为ZZZZZ,再加上中间的内容,才是一个有效内容

人员A,修改文件为:

AAAAA
11111
ZZZZZ

人员B,修改文件为:

AAAAA
22222
ZZZZZ

那么,当A提交后,B拉取时发生冲突,此时文件将显示为(标识大概是这样,我做了简化):

AAAAA
<<<<<<<<<<
22222
==========
11111
>>>>>>>>>>
ZZZZZ

那么人员B开始处理冲突,A和B商量后决定都要保留,但此时回顾上面我们说的假设情况,那么可知,A想要的内容是三行,而B想要的内容也是三行,他们俩的内容合并在一起应该是:

AAAAA
22222
ZZZZZ
AAAAA
11111
ZZZZZ

三行为一组,前后顺序这里无所谓。如果我们对冲突文件编辑,只是把标识删除只能得到:

AAAAA
22222
11111
ZZZZZ

那么我们只是得到了一个错误的文件。这就是前面所说的,存在复杂情况,这种情况下不能简单的删除标识来合并。针对这种复杂情况要了解文件内容的编排原理是什么,然后结合文件内容、冲突内容,进行调整合并。 个人觉得这种复杂合并很容易出错。

        在处理完文件后,提交到暂存区(git add .),然后再提交本地仓库(git commit)即可。

2.1.3 不处理冲突合并

        直接提交到暂存区(git add .),然后再提交本地仓库(git commit)。这样文件就会以Git加上标识的状态直接被提交,基本程序是必出错的。

        这种情况适合于说这个文件冲突了,但它是可以随时删除,或者本地重新生成的,所以我不处理它们的冲突,直接合并,之后我把这些文件再删除掉,或者本地重新生成。

        这种算是少数情况了。

2.1.4 警惕特殊文件

        还存在一些特殊文件,比如二进制文件,冲突后真是没法处理,有些都没法识别文件里的内容哪里冲突了。

        要尽量避免这种文件的冲突,因为真的很难处理。我目前对于这种不能编辑的都是直接“不处理冲突”,然后把合并后的文件删除,换份新的。

3 后记

        暂时这些,有了再补。


http://www.kler.cn/a/327046.html

相关文章:

  • 软考(中级-软件设计师)数据库篇(1101)
  • SpringBoot在线教育系统:集成第三方服务
  • Spring Boot 配置文件启动加载顺序
  • 2024江苏省网络建设与运维省赛linux解析答案(整合)
  • git rebase 使用 - 【nolankywu】
  • YOLOv11改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
  • 集师专属知识付费小程序搭建 心理咨询小程序搭建
  • 记录|Modbus-TCP产品使用记录【摩通传动】
  • c#代码介绍23种设计模式_11外观模式
  • 机器学习 | Scikit Learn中的普通最小二乘法和岭回归
  • 计算机是怎么工作的
  • 【Unity】本地化实现
  • Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字
  • 向量化技术在机器学习领域的深度实践与探索
  • 12.C++程序中的自定义函数
  • idea启动项目报错Command line is too long
  • 中信银行西安分行:“极地来信”沉浸展西安站正式启幕
  • (详细、重点)iOS开发与前端开发的相同点和不同点 20个
  • golang学习笔记22-面向对象(四):接口【重要】
  • 优化后的版本
  • 家用无线路由器配置
  • 大语言模型之LlaMA系列-LlaMA 2及LlaMA_chat(下)
  • c++(AVL树及其实现)
  • 在线PDF怎么转换成JPG图片?分享14种转换操作!
  • 【系统架构】服务端高并发分布式结构演进之路
  • 使用PYTHONPATH的注意事项