Можете ли вы взаимодействовать с индексом / областью размещения с помощью TortoiseGit?
Мне было поручено выступить с презентацией по Git для моих коллег, которые почти полностью являются пользователями Windows и привыкли использовать TortoiseCVS. Я использую Git около года, но я почти исключительно использовал интерфейс командной строки Unix.
Поэтому я пытался ознакомиться с инструментами Git для Windows GUI, включая TortoiseGit. Но мне кажется, что это нечто большее, чем просто оболочка графического интерфейса над интерфейсом командной строки Git, и фактически полностью абстрагирует некоторые вещи, в частности индекс.
Например, когда я щелкаю правой кнопкой мыши новый неверсионный файл в проводнике Windows, я могу выбрать "Добавить" в меню TortoiseGit, а затем зафиксировать этот файл, но этот же элемент меню отсутствует в файлах, которые уже есть в Git, в В этом случае я вижу только опцию "Добавить субмодуль".
Нет ли способа взаимодействовать с индексом с помощью TortoiseGit?
Я ищу аналоги git add
, git diff --cached
, а также git reset HEAD
конкретно.
Вот сообщение для группы Google об этом, но это было с прошлого лета.
Я использую TortoiseGit версии 1.6.5.0 и msysgit версии 1.7.4.msysgit.0, если это имеет значение. Я установил их всего несколько дней назад, чтобы они, вероятно, были достаточно современными.
4 ответа
Ответ: нет, вы не можете.
Для меня TortoiseGit - это инструмент, который вы можете использовать для облегчения перехода - в вашем случае - от CVS к Git (как я писал в своем ответе на вопрос: действительно ли TortoiseGit делает Git намного проще в использовании, как TortoiseSVN?). Но как только переход сделан и ваши коллеги познакомятся с Git, пришло время придумать настоящие инструменты.
И самый мощный инструмент для взаимодействия с Git - это командная строка. Период. Git Gui и gitk
также удобны в использовании, приносят некоторое удобство, но не имеют интеграции с проводником (по крайней мере, с точки зрения оверлеев). Но во времена с многогранными блоками разработки: почему бы не оставить Git Gui открытым на одном мониторе (тот, который используется для общего управления) и работать на другом?
Недавно я также сделал введение в Git в моей команде на работе. Мы привыкли к TortoiseSVN, поэтому я также показал им, как добавлять файлы с помощью Tortoise, как фиксировать и так далее. Но на каждом слайде я также отмечал, что они должны вводить в Git Bash, чтобы достичь того же результата. Таким образом, как только они станут немного более опытными, они смогут вытащить вводные слайды и посмотреть на команды, которые они должны использовать.
В ограниченной степени вы можете выполнять эти действия в TortoiseGit. Например, есть диалог сброса. Они не особенно заметны (я думаю), потому что использование TortoiseGit означает, что вам меньше нужен индекс git - существуют удобные и высокофункциональные методы графического интерфейса для выбора и просмотра объектов, которые вы намереваетесь зафиксировать, поэтому индекс становится менее необходимым.
При этом TortoiseGit приносит много полезных вещей как для начинающего, так и для продвинутого пользователя git, хотя это лишь дополнение, а не замена командной строки.
В качестве дополнительного перехода вас может заинтересовать пакетный файл, который я использую, который немного размывает строку, позволяя удобно вызывать эти окна графического интерфейса TortoiseGit из командной строки: https://github.com/ses4j/tgit
Правда даже хуже, чем до сих пор дают ответы. Я попробовал эксперимент: git add
внесение некоторых изменений в индекс, восстановление рабочего дерева в соответствии с текущим HEAD и запуск фиксации TortoiseGit.
Он перечислил измененный файл как один из файлов, которые могут быть включены в коммит, поэтому он знал, что что-то было изменено, и создается впечатление, что, по крайней мере, он знает, как завершить коммит, уже созданный другим инструментом. Но когда я выбрал его, коммит фактически использовал рабочую копию дерева и уничтожил незафиксированные данные в индексе, и коммит оказался недоступным для этого файла.
Опасный инструмент, я думаю, я буду избегать его.
Недавно поразила необходимость использования git add
чтобы применить stash, когда были внесены изменения в те же файлы, и обнаружил, что я могу использовать его с хитростью: создайте (создайте) новый файл в репозитории (например,.txt), откройте окно фиксации, в котором будут показаны измененные файлы вместе с новый. Выберите все измененные файлы и новый файл. Щелкните правой кнопкой мыши на новом файле, и вы получите Add
команда там. Будет применяться git add
ко всем выбранным файлам. После этого вы можете просто Revert
новый файл. Все это позволило мне применить тайник к измененным файлам.