2

在Git中合并python文件时会发生错误。请分享您的想法。如何删除所有pyc文件并合并内容。当它从存储库中提取更新时会发生此错误。这些 pyc 文件会经常更新。当我从存储库中提取更新时,每次都会发生这些错误

error: The following untracked working tree files would be overwritten by merge:
    addressbook/views.pyc
    allauth/account/admin.pyc
    allauth/account/auth_backends.pyc
    allauth/account/context_processors.pyc
    allauth/account/forms.pyc
    allauth/account/management/__init__.pyc
    allauth/account/urls.pyc
    allauth/account/views.pyc
    allauth/exceptions.pyc
    allauth/socialaccount/adapter.pyc
    allauth/socialaccount/admin.pyc
    allauth/socialaccount/app_settings.pyc
    allauth/socialaccount/context_processors.pyc
    allauth/socialaccount/forms.pyc
    allauth/socialaccount/helpers.pyc
    allauth/socialaccount/providers/base.pyc
    allauth/socialaccount/providers/facebook/forms.pyc
    allauth/socialaccount/providers/facebook/locale.pyc
    allauth/socialaccount/providers/facebook/provider.pyc
    allauth/socialaccount/providers/facebook/urls.pyc
    allauth/socialaccount/providers/facebook/views.pyc
    allauth/socialaccount/providers/google/provider.pyc
    allauth/socialaccount/providers/google/urls.pyc
    allauth/socialaccount/providers/google/views.pyc
    allauth/socialaccount/providers/linkedin/provider.pyc
    allauth/socialaccount/providers/linkedin/urls.pyc
    allauth/socialaccount/providers/linkedin/views.pyc
    allauth/socialaccount/providers/oauth/__init__.pyc
    allauth/socialaccount/providers/oauth/client.pyc
    allauth/socialaccount/providers/oauth/provider.pyc
    allauth/socialaccount/providers/oauth/urls.pyc
    allauth/socialaccount/providers/oauth/views.pyc
    allauth/socialaccount/providers/oauth2/__init__.pyc
    allauth/socialaccount/providers/oauth2/client.pyc
    allauth/socialaccount/providers/oauth2/provider.pyc
    allauth/socialaccount/providers/oauth2/urls.pyc
    allauth/socialaccount/providers/oauth2/views.pyc
    allauth/socialaccount/providers/twitter/provider.pyc
    allauth/socialaccount/providers/twitter/urls.pyc
    allauth/socialaccount/providers/twitter/views.pyc
    allauth/socialaccount/signals.pyc
    allauth/socialaccount/urls.pyc
    allauth/socialaccount/views.pyc
    allauth/urls.pyc
    crispy_forms/base.pyc
    crispy_forms/bootstrap.pyc
    crispy_forms/exceptions.pyc
    crispy_forms/helper.pyc
    crispy_forms/layout.pyc
    crispy_forms/layout_slice.pyc
    crispy_forms/utils.pyc
    feeds/views.pyc
    lettertemplate/forms.pyc
    lettertemplate/views.pyc
    quorum/forms.pyc
    quorum/views.pyc
    registration/admin.pyc
    registration/forms.pyc
    registration/models.pyc
    registration/urls.pyc
    registration/views.pyc
    rosetta/polib.pyc
    rosetta/poutil.pyc
    rosetta/signals.pyc
    rosetta/storage.pyc
    rosetta/urls.pyc
    rosetta/views.pyc
Please move or remove them before you can merge.
Aborting
4

3 回答 3

6

.pyc文件可能不应该被跟踪,因为正如您所看到的,它们会不断变化。出于这个原因,通常构建产品不会存储在 git 中。如果您可以选择我会在上游存储库中取消跟踪它们。

如果这不是一个选项,您唯一的选择是移动或删除您的本地.pyc文件。您可以使用以下命令执行此操作(注意:这假设您要删除当前目录下的所有 .pyc文件。

 find . -iname '*.pyc' -exec rm {} \;

完成此操作后,您应该能够进行合并,因为不会有要覆盖的本地文件。

于 2013-07-10T14:33:20.703 回答
5

发生此错误是因为您正在跟踪.pyc存储库中的文件(您不应该这样做)。这可能git add .是你应该做的是删除所有.pyc文件的结果git rm,然后再次合并。Git 不会抱怨,因为它不会.pyc在本地版本上复制存储库文件。

正如尼克建议的那样,添加.pyc和其他没有意义的文件跟踪到全局(或存储库级别).gitignore可能是一个好主意。如果这样做,git add .将不会自动添加这些文件。查看GitHub 的官方建议.gitignore文件列表。

于 2013-07-10T14:31:52.310 回答
2

要从索引中删除这些文件,请使用:

find . -name *.pyc | xargs rm

然后,您可以使用以下语句忽略已编译的 python 文件.gitgnore

*.py[cod]

一旦您告诉 git 忽略这些文件,您将不再收到警告消息。

我更喜欢忽略我的“全局”gitignore 文件中的编译文件(更多关于这里的内容),但您也可以在每个存储库的基础上执行此操作。

于 2013-07-10T14:34:21.777 回答