2016-12-27 8 views
0

gitでファイルの一部だけをコミットしたいのですが、その方法はありますか?gitでファイルのブロックのみを追跡するには?

+0

短い答えは「いいえ」です:コミットはファイルのスナップショットです(それは*全体の*ファイルです)。しかし、あなたが意味することは、あなたが一つのファイルに対して複数の独立した変更を行い、そのスナップショットとしてそれらの変更のうちの* 1つ*だけを持つファイル全体を持つコミットを行いたい場合です。それを行う方法です。それがあなたが求めているものなのかどうかは明らかではありません。 – torek

答えて

0

なぜファイルの一部だけをコミットしたいのですか?

ファイル全体をコミットしたくないインスタンスは考えられません。 (コミットする変更は、コミットしていないローカルファイルの変更に依存する可能性があり、ブランチ上で働いている他の人に誤解を招く可能性があります)。

あなたが上書きしたくないコードあなたの変更が必要であることを確かめるまで、そのコードを上書きしないようにブランチを開くことをお勧めします。

$ git checkout -b <branch-name> 

あなたはGitHubのを使用している場合は、次にあなたが疑問を持っている特定の行にコメント

$ git push origin <branch-name> 

と変更のためのプルリクエストを開くことができますし、それらが明確にできるように、元の作者に@mention意図。

2

Gitは、ディレクトリの内容を、スナップショットを維持して追跡します。 (「git from the bottom up」を参照)。したがって、ファイルの一部だけを直接追跡することはできません。

しかし、あなた行うことができますが、いくつかの追跡し、人跡未踏のファイルを連結してファイルを作成です。これは、makeまたはsconsのようなビルドツール、またはシンプルなシェルスクリプトやバッチファイルによって実現できます。追跡されていないソースファイルとその結果のファイルは、gitignoreファイルにリストされているので、gitはそれを追跡しません。

関連する問題