2017-04-19 36 views
3

ときどき私のコードでいくつかのものをハーココードする必要があります(開発を高速化するために)。それは資格情報、あるいは私が特定の機能をテストできるようにするためのちょうどハックかもしれません。多くの理由から、私はこのコードをメインコードベースまたは開発ブランチに押し込むことは決してありません。しばらくの間、私は 'git-assum-unchaged'コマンドを使っていましたが、マージ、リベースなどが混在してしまい、あなたが望んでいないものを押し込んでいるかもしれません。これを達成するクールなクリーンな方法はありますか?おそらく、私はそれを押す前にいくつかのファイルをチェックアウトすることを覚えなければならないと私に警告するいくつかのコマンド?何か案は?Git push reminder/helper?

+0

この種の設定ファイルをGitに入れる理由は何ですか? これらは.gitignoreにあり、コミットされていないはずです。 代替: 永久にコミットする共通のものを含む「テンプレート」ファイルを構築できますが、gitが認識できないファイルには具体的なenv設定が必要です。 – Mik378

答えて

4

多くの場合(資格情報のような)、私は、ソース管理ファイルにそれらを(一時的に)置かなくても済む方法を考えてみることをお勧めします。しかし、一時的なコードがあなたにとって最も簡単なワークフローである場合があります。

解決策の1つは、pre-commitフックを使用することです。あなたは一時的なコードにコメント(おそらくC言語のような// xxxTEMPxxxのようなもの)をマークしてから、あなたのマーカをdiffで見つけるコミットを拒否することができます。 .git/hooks/pre-commit.sampleの例を参照してください。

あなたが作業、コミット、または何でもしているときに変更を維持することができますが、git add変更がある場合は、そこにあることを通知して、ステージングを解除できます。 (同じファイル内の他のコードを使用している場合は、git add -pを使用して、テンポラリコードを保持したままコミットする変更を選択的に実行できます)いくつかの操作の途中で得ることができます。その場合、あなたはそれらを隠すことができます。少なくともassume-unchangedでプレイしようとするよりも優れているはずです。

+0

私は 'pre-push'フックでtmp-markerをチェックする点を除いて同様の方法を使用しています(自分のrepoでのコミットは問題ありませんが、tmpコードをリモートにプッシュしないでください)。 また、tmp-markerを挿入するためにvimマクロを定義しました。そうすれば、私はtmp-markerを綴じることを決して忘れずに、 'pre-push'フックでそれを見逃すことができます。 – Alderath

+0

@Alderath - 誤字を避けるための良い点。どのフックを使うのかは好みの問題だと思いますが、私はそれが* repoに入る前にそれをキャッチすることを好みます。そのため、コミットを分割したり、事実。 –

+0

@MarkAdelsberger 'pre-commit hook'は、私が探していたもの、特定のタグをチェックする簡単なスクリプトでした!ありがとう –

0

変更したファイルを表示したい場合は、git guiを使用できます。これにより、プッシュする修正されたファイルを選択することができます。