浙江建设网一官方网站,安卓系统开发公司,canvas做的手机网站,建筑企业网站有哪些个人向笔记。 #xff08;为什么没截图#xff0c;因为公司电脑没法截图#xff01;#xff09; 1 前言 主要记录在使用Git协同开发时的各种问题#xff0c;方便以后查阅。
2 记录
2.1 合并冲突 git pull下来后直接给合并了#xff0c;麻了。若不想直接合并应该先把分… 个人向笔记。 为什么没截图因为公司电脑没法截图 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拉取时发生冲突此时文件将显示为标识大概是这样我做了简化
AAAAA2222211111ZZZZZ
那么人员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 后记 暂时这些有了再补。