亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

__pycache__ 合并沖突未由 gitignore 解決

__pycache__ 合并沖突未由 gitignore 解決

蝴蝶刀刀 2023-12-29 15:05:07
我正在嘗試將開發分支合并回主分支。我已經在這兩個文件中運行git rm '*.pyc',這是我的 gitignore (從這里復制):# Byte-compiled / optimized / DLL files__pycache__/*.py[cod]*$py.class# C extensions*.so# Distribution / packaging.Pythonbuild/develop-eggs/dist/downloads/eggs/.eggs/lib/lib64/parts/sdist/var/wheels/share/python-wheels/*.egg-info/.installed.cfg*.eggMANIFEST# PyInstaller#  Usually these files are written by a python script from a template#  before PyInstaller builds the exe, so as to inject date/other infos into it.*.manifest*.spec# Installer logspip-log.txtpip-delete-this-directory.txt# Unit test / coverage reportshtmlcov/.tox/.nox/.coverage.coverage.*.cachenosetests.xmlcoverage.xml*.cover*.py,cover.hypothesis/.pytest_cache/cover/# Translations*.mo*.pot# Django stuff:*.loglocal_settings.pydb.sqlite3db.sqlite3-journal# Flask stuff:instance/.webassets-cache# Scrapy stuff:.scrapy# Sphinx documentationdocs/_build/# PyBuilder.pybuilder/target/# Jupyter Notebook.ipynb_checkpoints# IPythonprofile_default/ipython_config.py# pyenv#   For a library or package, you might want to ignore these files since the code is#   intended to run in multiple environments; otherwise, check them in:# .python-version# pipenv#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.#   However, in case of collaboration, if having platform-specific dependencies or dependencies#   having no cross-platform support, pipenv may install dependencies that don't work, or not#   install all needed dependencies.#Pipfile.lock# PEP 582; used by e.g. github.com/David-OConnor/pyflow__pypackages__/# Celery stuffcelerybeat-schedulecelerybeat.pid# SageMath parsed files*.sage.py# Environments.env.venvenv/venv/ENV/env.bak/venv.bak/# Spyder project settings.spyderproject.spyproject# Rope project settings.ropeproject# mkdocs documentation/site# mypy.mypy_cache/.dmypy.jsondmypy.json# Pyre type checker.pyre/# pytype static type analyzer.pytype/# Cython debug symbolscython_debug/
查看完整描述

1 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

首先,請注意,.gitignore內容本身永遠不會對合并產生任何直接影響。這是因為合并了commitsgit merge的內容,這些內容已經提交并且無法更改。他們擁有他們擁有的文件。地球上或其他任何地方的任何力量都無法改變它們。您正在合并一些現有的提交,準備進行新的提交。git merge

我已經git rm '*.pyc'在這兩個文件中運行過...

您的意思是“在兩次提交中”嗎?“在兩個文件中”在這里沒有什么意義。

我不記得重命名或刪除任何venv/lib/*文件。

如果venv/lib包含*.pyc文件,并且您運行了上面的命令,您將從工作樹和 Git 索引中git rm刪除這些文件。*.pyc一旦文件脫離 Git 的索引,現有*.pyc條目中的現有條目.gitignore就會生效,從而防止未來的*.pyc文件通過工作樹進入 Git 的索引。隨后的提交將缺少這些*.pyc文件。

我將在這里查看第一個沖突,并僅出于發布目的而分開長行:

CONFLICT (rename/delete):

venv/lib/python3.7/site-packages/

astroid/brain/__pycache__/brain_subprocess.cpython-37 2.pyc

deleted in version3ascii and renamed to

venv/lib/python3.7/site-packages/

astroid/brain/brain_subprocess 3.py

in HEAD. ...

這一切真正意味著:

  • 合并基礎提交包含一個名為 的文件.../__pycache__/brain_subprocess.cpython-37 2.pyc;

  • 提交version3ascii缺少該文件;

  • HEAD版本缺少此文件,但有一個名為.../astroid/brain/brain_subprocess 3.py

并且HEAD該新名稱的內容與舊名稱下的合并基礎內容相似,足以決定在git merge合并基礎提交和提交之間進行更改的人HEAD必須重命名(并且可能還修改)了合并基礎副本文件。

合并基礎提交似乎更有可能具有這些*.pyc文件所有這些venv/*文件,并且這些*.pyc文件在兩個分支提示提交(version3ascii分支提示和當前分支提示)中都被正確刪除。但是,某些venv/*文件存在于 中HEAD,但可能不存在version3ascii(否則 Git 可能會在那里檢測到類似的重命名)。.py該文件似乎也不該文件的重命名和修改后的副本.pyc,Git 的相似性檢測器只是將其誤檢測為重命名。

前進的道路有很多。例如:

  • 如果venv/*任何一個分支提示提交中都不應該有任何文件,您可以只進行兩個缺少這些文件的新分支提示提交。現在,Git 不會找到看起來相似的文件來聲稱重命名,這會讓 Git 相信不真實的事情。

  • 如果您不想進行新的提交,則可以中止此合并并使用擴展參數(-X參數)重新運行,該擴展參數將重命名閾值設置得更高或完全關閉重命名檢測器,例如git merge -Xfind-renames=99將其限制為 99%相似的文件,而不是 50% 相似的文件。

  • 或者,您可以簡單地手動調整 Git 索引中的所有內容。事實是,合并因合并沖突而停止?,F在您的工作就是安排獲得正確的合并結果。這些不需要與三個輸入提交中的任何一個匹配,盡管正確的合并可能以某種方式使用所有三個輸入。由于git merge 已完全停止,您現在可以完全控制最終運行git merge --continuegit commit完成合并時索引中的內容。您可以運行git rm -r .以刪除幾乎所有內容,從整個布構建所有新文件,并且git add.

(可能其他選項之一比“核武器鋪路”更有用,即使您確實選擇“核武器鋪路”(刪除并重新創建),您也可能不想像這樣批量進行這。)


查看完整回答
反對 回復 2023-12-29
  • 1 回答
  • 0 關注
  • 343 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號