В git есть ли (простой) способ изменить индекс, чтобы добавить только изменения в уже находящиеся в нем файлы? Это звучит довольно сложно, но то, что я хочу достичь, прост.Обновить поставленные файлы
Допустим, мой индекс выглядит следующим образом (слегка раздели git status
выход):
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
Некоторые изменения B
в индексе, некоторые нет. C
вообще не устраивается.
Как я могу обновить B
в индексе (этап его нестационарных изменений) без добавления C
?
I.e. Я хотел бы, чтобы индекс, чтобы выглядеть следующим образом:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
В этом простом случае это, конечно, может быть достигнуто с помощью простого git add B
, но я хотел бы знать, если есть простой ответ для общего случая. Я пробовал git add --refresh
, но если я правильно понял, это только обновляет статистику.
Может вы покажете реальный случай использования, где вы хотите это сделать? Я не могу себе представить (когда я добавляю файл и чем его больше модифицирую, это автоматически не означает, что я тоже хочу добавить эти изменения, особенно когда я не хочу добавлять изменения в некоторые другие файлы). –
@JanHudec Мне, вероятно, это не понадобится, если бы я был более строгим и касался только тех файлов, которые должны были бы совершать commit ('B'). Однако иногда я увлекаюсь и начинаю вносить изменения, которые должны быть в новой фиксации ('C'), поэтому я добавляю« B »в индекс. Перед тем, как совершать, я всегда просматриваю diff -cached и иногда чищу что-то в 'B'. и тогда мне это нужно. Я предполагаю, что это, вероятно, можно было бы решить по-другому, скажем, с помощью stash – axelarge
Моя точка зрения заключается в том, что когда вы делаете что-то в файле 'X', которое должно идти в commit' B' и увлекаться и делать изменения, которые должны выполняться в commit 'C', некоторые из этих изменений часто снова появляются в файле' X'. В этом случае вы хотите вручную добавить отдельные ханки, а не просто добавить файл 'X'. Очевидно, что если вы увлекаетесь, вы, вероятно, заметили что-то вокруг того, что вы меняете, поэтому маловероятно, что дополнительные изменения не касаются файлов, которые делает кулак. –