2017-03-16 22 views
0

こんにちは仲間の開発者。Git - 特定のフォルダで偶発的なコミットを防ぐ

内部フレームワークとして使用されるコードファイルを含むリポジトリがサブフォルダにあります。このフォルダをpackageというふりをしましょう。

私はこのパッケージファイルをコミットしたままにしておきます。これは、より簡単なビルドを保証し、使用している特定のフレームワークにはパッケージマネージャがないためです。

packageフォルダ内のファイルは、単一の開発者(別のブランチにあるかもしれません)が管理し、わずかに更新する必要があります。

ここで、packageフォルダにあるファイルに対して誤ってコミットすることを防ぎたいと思います。

このタスクを達成する方法はありますか?

私は別のソリューションを検討している:

  • Gitのフックを。ユーザーはそれらを有効にすることを簡単に忘れることができます。
  • 代替パッケージマネージャー。私たちは既にnpmとnugetを使用しており、あまりにも多くのツールを管理したくないので、実際に追加するのは簡単です。
  • git submodules;多くの開発者は/ sync/etcを更新する方法を考えるのに苦労しており、パッケージがビルドされるレポは共有されるファイルと同じではありません。だから私はパッケージのための2つのレポを管理しなければなりません。一つは開発用、もう一つは配布用です。

私は壁に向かって頭を叩いています...どんな提案も大歓迎です。

ありがとうございます!

+0

[npmを使ってプライベートgitリポジトリからインストールすることができます](http://stackoverflow.com/questions/10386310/how-to-install-a-private-npm-module-without-my-own-registry )。プライベートなので、メインのリポジトリにアクセスするのに使用しているのと同じ資格情報が必要です。 – amenadiel

+0

しかし、パッケージフォルダでのコミットを防ぐにはどうすればよいですか?何か不足していますか? –

答えて

0

私は、これはコメントとして良いだろうと感じ、私はそれはまだ....他のすべての開発者のために

を行うことができないとして、あなたは彼らの.git-無視するファイルにこのパッケージディレクトリを追加することができませんでした?また、ユーザーが管理している場合は、.git-ignoreを更新して、必要なときにパッケージを通過させ、パッケージディレクトリを再度無視するように別の変更を行ってください。

私はこれを強要していることを認識していますが、最も優雅なものではありませんが、潜在的な解決策である可能性があります。

+0

AFAICT、ファイルがリポジトリ内で追跡されている場合、それらの変更はgitignoreと一致しても追跡されます。これを試してみてください:ファイルをコミットしてからgitignoreを編集して無視し、内容を更新してください。 Gitのステータスは、無視しなければならない場合でも、更新されたファイルを表示するはずです。レポからファイルを適切に削除するには、git rm --cachedが必要です。 –

+0

あなたの言ったことに同意します。パッケージディレクトリは、それを管理する人が追跡できないようにする必要があります。代わりに、別のブランチを使用して言及したので、ベンダーの交換を除いて、[this](http://stackoverflow.com/questions/11788229/how-do-i-push-files-specified-in-gitignore)の質問はどうなりますか?あなたのパッケージディレクトリに? – Erasyn

関連する問題