Проблема: иногда, но не каждый раз, Git удаляет каталог static
из репо. Мы не уверены, что это вызывает, но похоже, что это происходит либо при слиянии между ветвями, либо иногда даже просто при проверке ветвей. Он делает это без запроса и ест отслеживаемые файлы.
Предыстория:
. Мы могли git rm
редактировать каталог static
в какой-то момент в прошлом или помещать его в .gitignore
, но не недавно. И у главы нашей ветки разработки нет static
в .gitignore
и отслеживаются файлы в static
. , развитие
.Но ветви всегда разветвляются от разработки
и обратно в разработки
. Но мы не уверены. Мы используем 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/_*