【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 后记

        暂时这些,有了再补。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值