git如何避免代码冲突
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git如何避免代码冲突相关的知识,希望对你有一定的参考价值。
Eclipse中,git是个比较头疼的问题,如果稍有不慎,就只能将自己的代码备份一下,然后重新从服务器上拉代码,再把自己有修改的部分加上,然后提交。 参考技术A 解决代码冲突的整个流程:1、远程路径存在或本地新建一个分支;
2、分支库与主库代码一致;
3、本地从分支库上拉取新代码;
4、本地代码已经修改,本地与新代码之间的冲突;
3、整合本地代码、新代码;
4、整合后,提交融合后的代码到个人私库上;
5、发送合入请求。
2
本机拉取公库上的代码;
输入命令:git clone
下载代码到本机。
Git中如何解决代码冲突
Git中如何解决代码冲突
3
因本人只有一个账户,因此通过手动修改公库上的文件,进行模拟公库被改变。
如下图所示,公库test.txt文件已经被修改,与本机上的内容已经不一致了,内容如下:
Git中如何解决代码冲突
4
然而与此同时,我本人对我本机的文件也进行了修改,内容如下。
Git中如何解决代码冲突
5
接下来,我想把我修改的内容合入到公库中。
则首先我需要再次拉取远程库,然后处理完冲突后,再一起合入。
pip - 如何使用预先构建的***而不是再次拉动 git 以避免冲突?
【中文标题】pip - 如何使用预先构建的***而不是再次拉动 git 以避免冲突?【英文标题】:pip - How to use pre-built wheel instead of pulling git again to avoid conflict? 【发布时间】:2022-01-24 03:47:36 【问题描述】:上下文
在我的 Django 项目(基于 Django cookiecutter)中,我使用 django-graphql-auth
,它依赖于 django-graphql-jwt
。
我 fork django-graphql-jwt
进行一些更改,然后还 fork django-graphql-auth
以更新其对我的 django-graphql-jwt
fork 的依赖:
# django-graphql-auth setup.py
install_requires=[
"django-graphql-jwt @ git+<git_url>#egg=django_graphql_jwt",
...,
]
这与pip install -r requirements.txt
一样正常工作。
问题
在 Docker 中,当我在一个阶段构建***并在另一个阶段安装它们时,django-graphql-jwt
git 被拉两次(在构建和安装时)并发生冲突。
Cookiecutter Django 提供了一个 Dockerfile (found here),它分为多个阶段:
-
为所有依赖项构建***。这是克隆和构建 -auth 和 -jwt git 的时候。
> pip wheel --wheel-dir /wheels/ -r local.txt
-
从前一阶段复制并安装***。在这里,应该使用内置的***(不要克隆 git)。
> pip install --no-cache-dir --no-index --find-links=/wheels/ /wheels/*
...
Processing /wheels/django_graphql_auth-0.3.16-py2.py3-none-any.whl
Processing /wheels/django_graphql_jwt-0.3.4-py3-none-any.whl
...
Collecting django-graphql-jwt@ git+<git url>
Cloning ...
...
ERROR: Cannot install django-graphql-auth==0.3.16 and django-graphql-jwt 0.3.4 (from /wheels/django_graphql_jwt-0.3.4-py3-none-any.whl) because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested django-graphql-jwt 0.3.4 (from /wheels/django_graphql_jwt-0.3.4-py3-none-any.whl)
django-graphql-auth 0.3.16 depends on django-graphql-jwt (unavailable)
您可以看到现有的 -jwt ***已被处理,但之后,它的 git 被克隆。这两个似乎导致了冲突。如果我在 setup.py (django-graphql-jwt>=0.3.4
) 中添加一个版本,它在构建步骤中已经失败。
如何将 -auth 依赖项与已构建的 -jwt ***相匹配?
【问题讨论】:
【参考方案1】:假设所有必需的依赖项都在第一步中构建(使用pip wheel
),您可以通过将--no-deps
选项添加到pip install
来忽略安装步骤中的依赖项:
pip install --no-cache-dir --no-index --no-deps --find-links=/wheels/ /wheels/*
【讨论】:
以上是关于git如何避免代码冲突的主要内容,如果未能解决你的问题,请参考以下文章
pip - 如何使用预先构建的***而不是再次拉动 git 以避免冲突?