问题:有时,但不是每次,Git 都会删除存储库的static
目录。我们不确定是什么触发了它,但它似乎发生在分支之间合并或有时甚至只是检出分支时。它无需询问即可执行此操作,并吃掉跟踪的文件。
的背景:
- 我有一个(私人)项目,它有几个分支,“发布”,“开发”,多个功能线。
- 我们有两个人(我和@stevejalim)在做这个 repo。这个问题发生在我们俩身上。
- 我纯粹为我的 git 命令使用命令行;Steve 混合使用了命令行和 Git Tower。
- 这是一个带有
static
目录的 Django 项目。我们可能在过去的某个时候git rm
编辑过该目录,或者将其放入,但不是最近。并且我们的开发分支的负责人没有进入并且有文件被跟踪。static
.gitignore
static
.gitignore
static
- 这种情况很少发生,以至于我们不确定这是我们正在做的事情,还是间歇性问题,Git 的错误或损坏的树
- 只有在将另一个分支合并回
develop
. 但是分支总是从develop
.develop
但我们不确定。 我们正在使用 git-flow,但在使用非 git-flow 命令时也会出现问题。
作为何时会发生这种情况的示例:
1)史蒂夫有一个干净的开发分支(没有更改提交或阶段)且稳定。他削减了一个新版本,
git flow release start|finish
并且在这个过程中(可能是从 master 到 development 的反向合并),整个 /static/ 树被删除了。2)史蒂夫通过放弃更改来修复删除(基本上取消删除文件)。但是随后,Steve 简单地从 master 切换回了 development,并且 /static/ 目录再次被删除(这是使用 Git Tower)
3) 有时只是从功能分支合并到作为临时合并进行开发就可以触发它。不过,它似乎确实经常在剪切新版本时发生
这可能与我们如何修复 /static/ 目录的切换有关吗?批量取消删除已删除内容的最佳方法是什么?丢弃本地更改或硬重置 HEAD 似乎都无法解决问题。变基可能对我们有帮助吗?
更新我们刚刚再次体验了这一点git add .
- 没有改变分支,没有合并。这对诊断有帮助吗?
这是 Steve 的 .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/_*