Копить только один файл

Я бы хотел сохранить только изменения в одном файле:

git stash save -- just_my_file.txt

Выше не работает, хотя. Есть альтернативы?

84 голоса | спросил EoghanM 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 12:42:12 +0400 2012, 12:42:12

4 ответа


0

Я думаю, stash -p - это, вероятно, тот выбор, который вам нужен, но на случай, если в будущем вы столкнетесь с другими, еще более сложными вещами помните, что:

Stash на самом деле является просто очень простой альтернативой только немного более сложному branch наборы. Stash очень полезен для быстрого перемещения, но вы можете выполнять более сложные задачи с помощью веток без такой большой головной боли и работы.

# git checkout -b tmpbranch
# git add the_file
# git commit -m "stashing the_file"
# git checkout master

иди и делай, что хочешь, а потом просто rebase и /или merge ветка tmp. На самом деле не так уж много дополнительной работы, когда вам нужно выполнить более тщательное отслеживание, чем позволяет stash.

ответил Wes Hardaker 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 17:15:28 +0400 2012, 17:15:28
0

Вы можете интерактивно хранить отдельные строки с помощью git stash -p (аналогично git add -p).

Имя файла не требуется, но вы можете просто пропустить другие файлы с помощью d , пока не достигнете файла, который хотите спрятать, и спрятать все изменения там с помощью a .

ответил Benjamin Bannier 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 13:25:29 +0400 2012, 13:25:29
0

Лучший вариант - поставить все, кроме этого файла, и сказать stash, чтобы индекс сохранялся с помощью git stash save --keep-index, таким образом сохраняя ваш неподготовленный файл

$ git add .
$ git reset thefiletostash
$ git stash save --keep-index

Как указывает Дэн, thefiletostash является единственным, который сбрасывается с помощью тайника, но он также сохраняет другие файлы, поэтому это не совсем то, что вы хотите.

ответил CharlesB 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 12:45:33 +0400 2012, 12:45:33
0

На всякий случай вы имеете в виду «отменить изменения» всякий раз, когда вы используете «git stash» (и на самом деле не используете git stash для его временного хранения), в этом случае вы можете использовать

git checkout -- <file>

Обратите внимание, что git stash - это просто более быстрая и простая альтернатива ветвлению и тому подобному.

ответил Devesh 19 FriEurope/Moscow2014-12-19T15:14:32+03:00Europe/Moscow12bEurope/MoscowFri, 19 Dec 2014 15:14:32 +0300 2014, 15:14:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132