【问题标题】:Git merge: conflict I don't know how to resolveGit合并:冲突我不知道如何解决
【发布时间】:2020-03-10 18:02:28
【问题描述】:

我在 Git 上有一个 Django 项目

我对 Git 不太满意

我刚刚完成,提交并推送我的 feature/22 分支

我已经提交(在 git add 之后)并推送我的主人

所以我的两个分支都是最新的

现在,我想在本地将我的 master 与我的 feature/22 合并,但我有冲突

即使在提交之后,我在“取消合并路径”中有 2 个文件:

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   unblind/migrations/__pycache__/0002_auto_20200124_0904.cpython-37.pyc
        both modified:   unblind/migrations/__pycache__/0003_auto_20200124_1007.cpython-37.pyc

如果我使用推荐的命令 git add 会怎样?

为什么这两个文件没有包含在之前的 git add 中。命令?

编辑:

$ git merge feature/22
warning: Cannot merge binary files: unblind/migrations/__pycache__/0003_auto_20200124_1007.cpython-37.pyc (HEAD vs. feature/22)
warning: Cannot merge binary files: unblind/migrations/__pycache__/0002_auto_20200124_0904.cpython-37.pyc (HEAD vs. feature/22)
Auto-merging unblind/migrations/__pycache__/0003_auto_20200124_1007.cpython-37.pyc
CONFLICT (content): Merge conflict in unblind/migrations/__pycache__/0003_auto_20200124_1007.cpython-37.pyc
Auto-merging unblind/migrations/__pycache__/0002_auto_20200124_0904.cpython-37.pyc
CONFLICT (content): Merge conflict in unblind/migrations/__pycache__/0002_auto_20200124_0904.cpython-37.pyc
Removing randomization/templates/randomization/_randomisation_edit.html
Automatic merge failed; fix conflicts and then commit the result.

EDIT2:

我已经暂时解决了我的合并问题:

  • git 结帐功能/22
  • rm(合并 master / feature/22 时冲突中提到的所有文件
  • git commit -m "delete *.pyc"
  • git checkout master
  • git 合并功能/22
  • git push origin master

但是 .pyc 仍然被跟踪,并且在我在 master 上运行我的 django 项目之后,如果我执行 git status:

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   export/migrations/__pycache__/__init__.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0003_auto_20200128_1337.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0004_auto_20200129_1206.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0005_auto_20200305_0810.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0006_auto_20200305_1238.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0007_auto_20200305_1242.cpython-37.pyc
        modified:   parameters/migrations/__pycache__/0008_auto_20200305_1428.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0001_initial.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0002_auto_20200129_1206.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0003_auto_20200129_1434.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0004_auto_20200210_1750.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0005_historicalstock_stock.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0006_auto_20200218_1344.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0007_auto_20200218_1359.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0008_auto_20200218_1403.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0009_auto_20200218_1410.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/0010_auto_20200302_1059.cpython-37.pyc
        modified:   pharmacy/migrations/__pycache__/__init__.cpython-37.pyc
        modified:   randomization/migrations/__pycache__/0008_auto_20200302_1059.cpython-37.pyc

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        unblind/migrations/__pycache__/

no changes added to commit (use "git add" and/or "git commit -a")

【问题讨论】:

标签: python django git


【解决方案1】:

您可以忽略项目中的任何/__pycache__/ 文件夹。

  1. 如果您还没有.gitignore,您可以在项目文件夹中创建一个:project/.gitignore
  2. */__pycache__/* 放入.gitignore

【讨论】:

  • 我已经在 master a feature/22 中更新了我的 gitignore,但仍然存在冲突(有关详细信息,请参阅编辑)
  • 我可以直接删除这些文件吗?
  • @SLATER 是的。 Python 将自己再次创建它们。所以试试git rm -r unblind/migrations/__pycache__/
【解决方案2】:

删除那些缓存文件

rm -rf <path_of_filename>

尽量不要用

推送你的代码
 git add.

继续练习开始添加

.gitignore

在开始任何项目之前,将缓存,编译文件添加到其中。

【讨论】:

    【解决方案3】:

    将 pycache 文件存储在 git 存储库中绝不是一个好主意。 这些文件由py_compile module 在每次构建时自动生成。

    您可以添加此文件来解决合并冲突,但我建议在项目的根目录下使用 .gitignore。

    这是一个很好的 .gitignore 可以添加到您的项目中。

    【讨论】:

    • 我的 gitigonre 以 # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class */__pycache__/* 开头,但即使这样我也遇到了这个问题......
    • 因为这些文件在编译代码时会重新生成,我可以删除它们而没有副作用吗?
    • git status 的输出是什么?如果你在输出中有这个 *.pyc 文件,这意味着你的 .gitignore 没有被应用。通过打开每个导致错误的文件并根据需要保存来解决冲突。然后删除所有 *.pyc 并重建您的项目。
    • 你应该是正确的,但不知道为什么我的 gitignore 没有应用...
    • 我已经读过它可能是编码问题(?)或者因为我在 git init 之后创建了我的 gitigore,所以所有文件都已被跟踪......这是可能的......我该如何解决那个?
    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2018-08-04
    • 2017-05-10
    • 1970-01-01
    相关资源
    最近更新 更多