問題: 毎回ではありませんが、時々、Git はリポジトリのstatic
ディレクトリを削除します。何が原因かはわかりませんが、ブランチ間をマージするとき、またはブランチをチェックアウトするときに発生するようです. 確認せずにこれを行い、追跡されたファイルを食べます。
背景:
- 私は、いくつかのブランチ、「リリース」、「開発」、複数の機能ラインを持つ (プライベート) プロジェクトを持っています。
- 私たち 2 人 (私と @stevejalim) がレポに取り組んでいます。この問題は私たち二人に起こります。
- 私は git コマンドに純粋にコマンド ラインを使用しています。Steve は、コマンド ラインと Git Tower を組み合わせて使用しています。
static
ディレクトリを持つ Django プロジェクトです。過去のある時点でディレクトリをgit rm
編集したり、ディレクトリに配置したりした可能性がありますが、最近ではありません。そして、私たちの開発ブランチの責任者にはファイルがなく、追跡されています。static
.gitignore
static
.gitignore
static
- これは非常にまれにしか発生しないため、それが私たちが行っていることなのか、断続的な問題なのか、Git のバグなのか、ツリーの破損なのかはわかりません。
- 別のブランチを にマージする場合にのみ発生する可能性があり
develop
ます。ただし、ブランチは常にから分岐しdevelop
、 に戻りますdevelop
。しかし、よくわかりません。 git-flow を使用していますが、git-flow 以外のコマンドを使用した場合にも問題が発生します。
これが発生する可能性がある場合の例として:
1) Steve には、クリーンな (コミットやステージに変更がない) 安定した開発ブランチがありました。彼は新しいリリースをカットし
git flow release start|finish
、その過程で (おそらくマスターから開発への逆マージ)、/static/ ツリー全体が削除されました。2) スティーブは変更を破棄して削除を修復しました (ファイルの削除を本質的に元に戻すため)。しかしその後、スティーブはマスターから開発に戻るだけで、 /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/_*