Git таинственным образом удаляет вещи (править: на самом деле django-storerages)

Проблема: иногда, но не каждый раз, Git удаляет каталог static из репо. Мы не уверены, что это вызывает, но похоже, что это происходит либо при слиянии между ветвями, либо иногда даже просто при проверке ветвей. Он делает это без запроса и ест отслеживаемые файлы.

Предыстория:

  • У меня есть (частный) проект, в котором есть несколько веток, «выпуск», «разработка», несколько функциональных направлений.
  • Нас двое (я и @stevejalim) работаем над репо. Эта проблема случается с нами обоими.
  • Я использую исключительно командную строку для своих команд git; Стив использует смесь командной строки и Git Tower.
  • Это проект Django со статическим каталогом . Мы могли git rm редактировать каталог static в какой-то момент в прошлом или помещать его в .gitignore , но не недавно. И у главы нашей ветки разработки нет static в .gitignore и отслеживаются файлы в static .
  • Это происходит так редко, что мы не уверены, что мы делаем, или временная проблема, ошибка с Git или поврежденное дерево
  • Это могло произойти только при слиянии еще одно ответвление обратно в , развитие .Но ветви всегда разветвляются от разработки и обратно в разработки . Но мы не уверены.
  • Мы используем git-flow, но проблема возникает и при использовании команд, отличных от git-flow.

  • В качестве примеров того, когда это может случиться:

    1) У Стива была ветвь разработки, которая была чистой (без изменений для фиксации или стадии) и стабильной. Он вырезал новый выпуск с помощью git flow release start | finish , и в процессе (возможно, обратное слияние от мастера к разработке) было удалено все / static / tree.

    2) Стив исправил удаление, отменив изменения (чтобы восстановить файл). Но затем Стив просто переключился с master на разработку, и каталог / static / снова был заблокирован (это было с Git Tower)

    3) Иногда простое слияние из функциональной ветки для разработки в качестве промежуточного слияния может вызвать это. Похоже, что это чаще всего происходит при вырезании нового выпуска, хотя

Может ли это быть связано с тем, как мы исправляем отключение каталога / static /? Как лучше всего восстановить удаленные объекты? Ни отмена локальных изменений, ни полный сброс HEAD, похоже, не вылечивают. Может ли нам помочь перебазирование?

ОБНОВЛЕНИЕ Мы только что снова испытали это с помощью git add. - без изменения ветвей, без слияния. Это вообще помогает в диагностике?

Вот содержимое файла .git / config Стива:

[core]
   repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:foobarbazbam/bar.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gitflow "branch"]
    master = master
    develop = develop
[gitflow "prefix"]
    feature = feature/
    release = release/
    hotfix = hotfix/
    support = support/
    versiontag = 
[difftool "tower"]
    cmd = \"/Applications/Tower.app/Contents/Resources/CompareScripts/kaleidoscope.sh\" \"$LOCAL\" \"$REMOTE\"

Вот содержимое .gitignore :

.DS_Store
*.pyc
*.log
*.log.*
*.bak
*~
settings_local.py
/build/
/static_collected/*
/static/uploads/*
/static/theme_files/*
/static/picture/*
pip-log.txt
*.tmproj
*.dot
*.db
*.sublime-project
*.sublime-workspace
/docs/_*
11
задан Steve Jalim 9 February 2012 в 19:36
поделиться