リポジトリの作業コピーにいくつかの変更を加えました。私は長い間コミットしておらず、すべての変更が追跡されています。
ここで、最初に変更の一部をコミットし、後で変更の別の部分をコミットして、それぞれに戻すことができるようにしたいと考えています。明らかに、変更のこれらの部分は別のファイルにあります。私はgitを初めて使用するので、他の場所で提案された git rm --cache のようないくつかのことを試してみると、すべての変更を元に戻すのではないかと心配しています。親切に助けてください。
リポジトリの作業コピーにいくつかの変更を加えました。私は長い間コミットしておらず、すべての変更が追跡されています。
ここで、最初に変更の一部をコミットし、後で変更の別の部分をコミットして、それぞれに戻すことができるようにしたいと考えています。明らかに、変更のこれらの部分は別のファイルにあります。私はgitを初めて使用するので、他の場所で提案された git rm --cache のようないくつかのことを試してみると、すべての変更を元に戻すのではないかと心配しています。親切に助けてください。
git gui と 'stage hunk for commit' または 'stage line for commit' を実行できます
コマンドラインで使用できます
$ git add -p
コミットのハンクを選択します。
-p
オプションを使用することをお勧めしますgit add
。これは、ハンクをコミットするかどうかをユーザーにインタラクティブに尋ねるようにgitに指示します。
$ git add -p src_file.c
$ git commit
$ git add -p src_file.c
$ git commit
...
このオプションを使用すると、すべてのハンクに対して次のようなプロンプトが表示されます。
Stage this hunk [y,n,q,a,d,/,s,e,?]?
を押す?と、次のヘルプメッセージが表示されます。
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
このように追加すると、同じファイルまたは複数のファイルへの変更を複数のコミットに簡単に分割できます。詳細については、をご覧くださいman (1) git-add
。
コマンドを使用してコミットにファイルを追加できますgit add
。たとえば type git add file.c
、 thenfile.c
は next でコミットされgit commit
ます。追加されていないファイルはコミットされません。コミット後、他のファイルを追加して再度コミットします。
と入力すると、コミットのためにどのファイルがステージングされているかを確認できますgit status
。すべてのファイルを追加するには、 と入力しgit add .
ます。
おそらく私は質問を理解していませんが、いくつかのファイルを追加してコミットし、プロセスを繰り返します。
git add file1 file2
git commit -m "Comment first commit comment"
git add file3 ...