私は複数のマシンで作業する傾向があるため、ある種のバージョン管理を維持し、複数のマシン間で作業を同期するために git を使用します。私は自分のコードに取り組んでいる唯一の人です。
基本的なことのほとんどは git で行うことができます。たとえば、ファイルを git チェックアウトして個々のファイルを以前の状態に戻し、git revert を使用して全体を返すことができます (その複雑さの一部をまだ完全には理解していないため、git revert を使用するのは怖いです)。以前の状態に投影します。また、特に方向がわからない場合は、git branch を使用してコードを別の方向にフォークすることもあります。
しかし、私の git に関する知識はやや乏しく、さらに作業を進めるにつれて、ソース ファイルを徐々に再保存し続ける傾向があります。たとえば、コードの作業中に 1...18 を経て、終了するまでに project18.c に取り組んでいる可能性があります。これは、ファイルの作業中に頻繁に git コミットを行うことに加えて、プロジェクトでの作業を「ダイヤルバック」する 2 つの方法があります。ただし、このインクリメンタル ファイル番号付けは、複数のファイルにまたがるコードではうまく機能しません。カプセル化して周囲の関数から内部実装を隠す自己完結型関数の作成に一生懸命取り組むことで、私の問題のいくつかに対するよりエレガントな解決策になると思います。
主要な新機能やコードの断片ごとに git コミットを実行するように勧められることがよくありますが、頻繁に git コミットを実行できなかった場合、バグのあるコードを手動で「取り消す」のに途方もない時間を費やしてしまうことがよくあります。コードを実装するその特定の方法を放棄しています。事前にコードをより適切に計画//設計することが役立つ場合があると思いますが、何が行き止まりのコードやバグのあるコードになるかを完全に予測するのは難しい場合がよくあります。
バージョン管理の実用的な戦略を探しています。これは、特にうまくいかないときに役立ち、問題のある部分のデバッグに役立ちます。