Отключить промежуточную область git

Мне действительно не нравится эта зона git, это просто делает мою жизнь излишне запутанной.

Можно ли отключить его, чтобы все отредактированные и новые файлы находились в одном контексте? Так что git diff показывает разницу между репозиторием и моим рабочим каталогом (и мне не нужно также набирать git diff --cached) и чтобы git ci проверял всю мою рабочую копию (не только часть, которая была поставлена).

Если нет, альтернативы (например, настройка кофигураций), так что кажется, что у меня нет стадии, тоже будет здорово.

У меня нет возможности перейти на другой DVCS, и я не хочу учиться, как область постановки. Пожалуйста, не публикуйте, чтобы предложить следующее: (

Спасибо, -Shawn

PS: Я спросил об этом на superuser.com, https://superuser.com/info/192022/disable-git-staging-area, но этот форум, похоже, гораздо меньше размещен (всего 118 тегов git по сравнению с 4448 здесь)

Ответы

Ответ 1

Нет. Вы научитесь любить его.

В более серьезной заметке git add -A; git commit, вероятно, ваш друг. Таким образом, вы избегаете большинства взаимодействий с (и преимуществами) промежуточной области.

git add -A более мощный, чем обычный git commit -a. Он найдет новые файлы, а также разместит измененный контент и удалит файлы, которые больше не находятся в рабочем дереве.

Ответ 2

Псевдонимы - ваши друзья.

Например, вы можете создать команду diff, которая делает то, что вы хотите, с минимальным набором: в .gitconfig put

[alias]
        di = diff HEAD
        co = commit -a

Затем вы можете просто сделать git di и получить свой собственный diff или git co и получить свою собственную команду фиксации.

Ответ 3

Вы можете просто использовать git commit -a, чтобы зафиксировать все измененные/удаленные файлы. Вам все равно придется добавлять неподготовленные файлы вручную.

Я пришел из Subversion и сперва тоже был смущен промежуточной областью. Но вы найдете его очень полезным. Если вы выполняете изменения, которые вы тестировали, но делаете больше изменений, которые нарушают вашу сборку, вы можете reset вернуться к вашим поэтапным изменениям.

Ответ 4

Промежуточная область (IMO) одна из Git наибольших сильных сторон и действительно показывает, как она отличается от любого другого DVCS там.

Вы можете использовать

git commit -a

чтобы автоматически добавлять измененные файлы. Для нетронутых файлов вы сами по себе. Практика git add . && git commit.

Если вам не нравится использовать другой VCS. Принудительно использовать репозиторий Git? См. Некоторые доступные плагины, которые совместимы, например hg-git.


Лично я научился играть в силах Git вместо того, чтобы сражаться с ним. Представьте, что вы находитесь в середине большой грязной ветки, но вам нужно сделать несколько выборочных изменений для производства. Boom, git add [files], а затем зафиксируйте и нажмите. Вернитесь к работе, не испортив что-нибудь еще. Существует множество других примеров, но это, возможно, проще всего понять.

Ответ 5

и я не хочу учиться, как область постановки. Пожалуйста, не публикуйте, чтобы предложить следующее: (

Как и все остальные. Я собираюсь предложить вам научиться любить сцену. Это действительно полезно, хотя в 90% случаев вы будете игнорировать его.

Если вы в настоящее время не считаете это полезным, я думаю, вы думаете о том, что совершили ошибку. Вы все еще думаете о единичных файлах или обо всем сразу. Правильный способ думать о коммитах - за функцию/исправление, а функции/исправления часто распространяются по нескольким файлам. Вы должны сгруппировать связанные изменения в одну фиксацию. И иногда эта группа изменений не охватывает все текущие изменения. Это когда стадия становится полезной.

Я знаю, что это не то, что вы хотите услышать, но на самом деле, в тот момент, когда вы перестаете бороться с инструментом и учитесь жить с ним, это момент, когда он перестает быть "болезненным" для использования этого инструмента.