Comments 27
git stash
— отложить все текущие изменения в локальное хранилище
git stash pop
— забрать последние сохраненные изменения из хранилища
Полезно если вы не хотите пока комитить код, но вам срочно нужно переключится на другую ветку.
Полезно если вы не хотите пока комитить код, но вам срочно нужно переключится на другую ветку.
Всегда в таких случаях делаю commit, озаглавленный WIP — нагляднее и не забудешь. Потом просто делаю amend.
stash скорее нужен для упрощённого rebase между ветками.
— У меня есть изменённые файлы, но git diff ничего не показывает ;( Что ещё за staging area?
— Я сделал git reset --hard и всё пропало!
— "#1234 foo" и «Revert „#1234 foo“» потому что «работаю в коллективе и коммиты общие, мой выбор — git revert».
— git commit --amend не работает! Но ведь я читал статью, мой коммит не был объединен с удаленной master-веткой! Я же пушил его только в develop!
Статья называется «10 Git-команд, которые стоит знать разработчику». И то, что обещает название, в тексте полностью раскрыто.
То же самое с
Не забывайте убедиться в том, что вы не отменяете коммит из удаленной ветки, от которой зависят другие члены команды.Убедиться при помощи телепатии. Про «git branch -r --contains» разработчику, видимо, знать не стоит. Спасибо, Jeff Hale, очень полезная статья!
Даже не знаю, на кого статья ориентирована. Сам гит освоил по чему-то вроде офф. мануала, а дальше — StackOverflow (не забывая читать непринятые ответы, конечно).
> git blame my_life — Просмотреть, кто, что и когда изменил в my_life.
всего две буквы переставил, а какой эффект :)
Я не понимаю, зачем нужен GUI для Git. Когда-то поставил GitKraken, помучился пару дней, и снес.
Git — из категории настолько мощных инструментов, для которых GUI скорее помеха, чем помощь. И наделать проблем проще скорее из GUI, чем из командной строки.
По опыту, который есть у меня, GUI пользуются только те, кто сумел освоить лишь pull/commit/push
и ничего более (https://xkcd.com/1597/). И в случае любой реальной проблемы (даже проблемки), эти люди беспомощны. И их все время приходится водить за руку объясняя даже такие элементарные вещи, как правильно называть ветки.
Как только человек учится пользоваться git в полной мере, он уже переходит в командную строку. Есть множество ситуаций в жизни, которые никак не могут быть предусмотрены заранее создателями любого GUI. Во многих GUI инструментах даже rebase сделать сложно (требуются минуты времени и десятки кликов мыши), тогда как в командной строке достаточно написать git rebase -i HEAD~3
.
Да и вобще для каждодневной работы, лично мне, удобнее гуй — набивать руками имена файлов и веток сомнительное удовольствие. Ну а если нужно хотябы заребейзиться или что-то более экзотичное, то да, там уже в консоль.
Плюс гуй всётаки сглаживает кривую обучения
Пользуюсь Смартгитом, плачу деньги (так как для работы). За пару лет единственное, что не смог в нём сделать — какую-то экзотику вроде мержа поддеревьев без общего корня. Всегда вижу, какая команда выполняется в результате моего действия (помогает понимать и автоматизировать). Классные дифф, редактор индекса (трёхоконный), конфликт резолвер. Прекрасное, наглядное представление всего, что надо. Они достигли уровня, когда инструмент намного больше помогает, чем мешает.
А Кракена тоже снёс в тот же день, как поставил — кажется, он посмел сыпаться с ошибками. Хотя картинка у него красивая, да...
Кажется, важно не только gui или cli, но и то, что это конкретно за gui — то ли для тех, кто ничего на хочет видеть лишнего, то ли для тех, кто хочет повысить свою эффективность, не теряя при этом контроля за процессом. И для самостоятельного обучения, к примеру, наглядный результат — вообще очень полезная вещь.
Ну а если нужно хотябы заребейзиться
Это как раз тоже удобней делать через GUI. Ну во всяком случае GitExtensions поддерживает.
Он наглядно показывает изменения в рабочей области, в staging и дерево коммитов.
Ну и некоторые частые команды там проще, чем в консоли. Например, есть отдельная команда revert для файлов, и для строк в файлах.
Не приходится в очередной раз гуглить команды для git
А зачем пробелы перед закрывающимися кавычками в ярлыках для команд Git?
При наборе, например,
ga .
перед точкой будет два пробела, это пофиг, согласен, отработает как надо, но это немного странно, мне кажется.
p.s: stackoverflow уже года как 2 назад опубликовал инфу о том, что вопрос «как выйти из vim» набрал миллион просмотров. )))
за vim обидно(
10 Git-команд, которые стоит знать разработчику