Git объединить спонтанно удаляет файл - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть две ветви. Там есть файл, присутствующий в обеих ветках. Он не изменился с тех пор, как две ветви разошлись. Когда я объединяю одну ветку с другой, git удаляет файл. Я не вижу причины для этого. Рассмотрим следующий консольный журнал, где я проверяю наличие файла в обеих ветках, затем пытаюсь выполнить слияние и показываю, что файл теперь удален. (Я отредактировал определенные детали, но порядок событий остается неизменным, и я заверяю вас, что каждый файл, перечисленный в разделе поэтапных изменений, был файлом .swift, в отличие от рассматриваемого удаленного файла.)

$ git checkout develop
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.
$ ll PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved 
-rw-r--r--  1 USER  USER  603 Apr 00 00:00 PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved
$ git checkout feature/FEATURE
Switched to branch 'feature/FEATURE'
Your branch is up to date with 'origin/feature/FEATURE'.
$ git checkout develop
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.
$ git status
On branch develop
Your branch is up to date with 'origin/develop'.

nothing to commit, working tree clean
$ ll PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved 
-rw-r--r--  1 USER  USER  603 Apr 00 00:00 PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved
$ git checkout feature/FEATURE
Switched to branch 'feature/FEATURE'
Your branch is up to date with 'origin/feature/FEATURE'.
$ git status
On branch feature/FEATURE
Your branch is up to date with 'origin/feature/FEATURE'.

nothing to commit, working tree clean
$ ll PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved 
-rw-r--r--  1 USER  USER  603 Apr 00 00:00 PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved
$ git merge develop
Auto-merging PROJECT.xcodeproj/project.pbxproj
CONFLICT (content): Merge conflict in PROJECT.xcodeproj/project.pbxproj
Automatic merge failed; fix conflicts and then commit the result.
$ git status
On branch feature/FEATURE
Your branch is up to date with 'origin/feature/FEATURE'.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:

    new file:   PROJECT/PATH/SOME_SWIFT_FILES.swift
    modified:   PROJECT/PATH/SOME_OTHER_SWIFT_FILES.swift

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:   PROJECT.xcodeproj/project.pbxproj

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    deleted:    PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved

$ ll PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved 
ls: PROJECT.xcworkspace/xcshareddata/swiftpm/Package.resolved: No such file or directory
$

Почему он это делает? Очень неприятно думать, что git может самопроизвольно вносить ошибочные изменения по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...