2016-04-06 8 views
1

私はgitのかなり小さなプロジェクトに取り組んできましたが、私はしばしば、私は小さな変更をたくさんすると、いつもコミットするのが面倒です。だから、私が回って、私のコードが最後に働いた時間を知りたい時、私はコミットを保存していないことに気がつきました。私は私のファイルの一つを保存するたびにコミットを記録する方法がありますか?コミットメッセージは気にしません。私はちょうど私の変更を記録したい。
私はこの質問をGoogle検索するとgit stashingに遭遇しました。それは私がしなければならない仕事の量を減らしますが、それを排除するものではありません。
ご意見をいただければ幸いです!gitはファイルに対する変更を継続的にコミットできますか?

+0

gitが正確に何かを理解しているだけです。gitはバックグラウンドで実行されているプログラムではないため、自動的に何もできません。 gitは、コマンドラインでgitを実行するとき、またはサードパーティのアプリケーションがgitを使うときにのみ実行されるスクリプトのセットです。だから簡単な答えは:gitは間違いなくできませんが、おそらく他のもの(gitを使って)ができます。 – Peter

答えて

4

Gitは自動コミットしませんが、あなたが好きなら、あなたはあなたのためにそれを行うには小さなスクリプトを設定することができます。これは、60秒ごとに「仕事」というメッセージで自動コミットします

while sleep 60; do git commit -m 'Working'; done 

。 ...そこにあなたのファイルシステムを見て、あなたが望むように保存する上で何かを実行しますGuardのような多くのツールもありますが、私は理由の詳細について心配していない今、解決策が外であること


あなたの問題について話しましょう。なぜなら、これは助けにならないからです。最後の良い状態が保存されていないのではなく、あなたが何をしているのかを示すことなく、見ることができる無限の部分状態があります。マイルストーンに達したときに別のコミットを追加することを忘れないでくださいが、自動コミットしただけなので、マークする必要はありません(この場合は git commit --allow-emptyを使用してください)。自動コミット。

あなたがしたいことは、小さく、一貫した変更を行う習慣を開発することです。これらは、あなたが以前の状態に戻ることができますが、あなたの将来の自己と一緒に働くことができる誰もがあなたの思考プロセスを記述するブレッドクラムとして機能します。あなたがそれぞれgood commit messageを書くならば、さらに良い。

定期的にコミットすることのもう1つの利点は、作業をこれらの小さなコミット可能なチャンクに分解することができることです。これは、コードを設計する途中まで細かく流れ込む可能性があります。私たちは常に、モジュール性が良いこと、単一責任の原則が良いこと、これは、より良い習慣をあなたのプロセスに組み込むための具体的な方法です。

あなたは問題が良いコミットに分解されるだけでなく、実際には完全に独立していることに気づくでしょう。それらは異なるブランチに置くことができ、好きなようにそれらを切り替えることができ、後でmasterまたは他のものにマージすることができます。 1つのメガチャレンジセットではなく、一度に1つのフィーチャAとBとバグCを読むことができるので、コードを見直す人にとって特に便利です。

タイマーを取得して5分ごとにオフにします(あなたの思考の列車をあまり頻繁に中断することなく、頻繁に頻繁に感じる期間を選んでください)。それがあるときはいつでも、あなたがあなたの仕事の一歩を踏んだのかどうか尋ねて、それをコミットしてください。あなたはおそらく何かの途中にあるでしょうので、git add --patchに精通しているので、終了したセクションをステージングして、そうでないパートで作業を続けることができます。より多くのことを学び、Gitを使用すればするほど効果的ですし、細かい変更の流れをスクロールするのにかかる時間も短くなります。

関連する問題