フォーク(英語:fork)とは、ソフトウェアの開発において、既存のプログラムのコードを複製し、そのコードを元に新しいプログラムを作成することを指します。
フォークすることで、元のプログラムを変更せずに、そのプログラムの機能を拡張したり、バグを修正したりすることができます。
また、フォークすることで、他のプログラマーの変更の影響を受けることなく、複数の開発者が同時にプログラムを開発することができるようになります。
フォークして改良したものを再びフォーク元に統合することを「マージ」といいます。
また、宗教上の理由により複数に分裂して開発が進むこともあります。