LINUX.ORG.RU

Как начать пользоваться git?

 


0

3

вот все смеются над вимерами, дескать, 2rj02q,9gj4,jg902g0,,94tj,gksdka + стрелочка вверх

но именно так и выглядит работа с git.

извините, но каждый раз держать открытое окно, каждый раз печатать

git add .

git commit -m «тут ещё придумай что написать»

git push

то есть, получается так, что работа с git отнимает до 50% от всей работы с кодом.

ну бред. ну просто бред и пустая трата времени. я не могу никак приучить себя к регулярному использованию git, и до сих пор не знаком с ним как с инструментом, потому что вечно получается какая-то фигня.

почему нельзя просто мышкой перетащить файлики куда-нибудь там, и чтобы оно просто само сделало эти add commit push?

почему нельзя на :w перебиндить :w + add + commit + push? да потому что этот git требует отдельного персонального внимания и отнимает моё полезное рабочее время.

какие существуют оптимизации для работы с git? что мне? алиасов в баше наделать или как?

как вы работаете с git? как всегда иметь перед глазами всю структуру .git каталога чтобы видеть с чем конкретно ты работаешь? вот чтобы захотел, тыкнул в любое место в структуре .git, открылся vim и редактируешь себе ветку.

что это за консольное извращение с постоянным написанием git команд? может какой-то вразумительный git клиент есть? чтобы вот перед глазами была структура всего .git?

я не знаю.

я сам не знаю чего я хочу. проблема этих инструментов в том, что, с ними не показывают как правильно работать. показывают — вот смотри, есть такие команды, делают это, делают то, ага, ага. только я вот замучился постоянно вбивать эти команды в окне терминала. я явно делаю что-то неправильно. как с этим git правильно работать??

★★★★★

Ответ на: комментарий от hobbit

add нельзя совместить с commit потому, что add тебе нужен не всегда, а только тогда, когда ты добавляешь новые файлы. Изменения в уже добавленных commit отслеживает автоматически.

Наверное ты имеешь в виду флаг --all (commit -a), который отслеживает изменения и удаления файлов, но не добавления. Без этого флага будут коммититься только явным образом добавленные (staged, git add) изменения

Забыл добавить в первый абзац: и на один commit у тебя может прийтись несколько add-ов

Это ещё ладно, вот после git add -i (--inetractive) начинается самое весёлое. Кстати, не такая страшная и довольно полезная штука, если потратить немного времени и разобраться, как ей пользоваться

grazor ★★
()

Как начать пользоваться git?

Начать с git gui и gitk. Для операций, которые там нельзя сделать, искать заклинания для интерфейса командной строки. Когда какие-то действия надоест прокликивать мышкой, искать заклинания для интерфейса командной строки. Когда захочется чего-то странного, гуглить. Скорее всего, странное хотелось другим до тебя, и есть готовые рецепты.

Можешь ещё книжку почитать: https://git-scm.com/book/ru/v2.

i-rinat ★★★★★
()

Наверное есть какие-нибудь отдельные GUI-интерфейсы, либо интеграции для существующих IDE…

Shushundr ★★★
()

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

Проблема реально надуманная.

abcq ★★
()

Разделяю чувство неудобности консольного гита. Мне как-то понадобилось закоммитить только часть строк из файла, долго читал как это сделать через консоль, потом забил и поставил официальный Github Desktop, там за пару кликов всё сделал.

mydibyje ★★★★
()
Последнее исправление: mydibyje (всего исправлений: 1)

получается так, что работа с git отнимает до 50% от всей работы с кодом.

Это ты либо не работаешь с кодом, либо хз как у тебя так получается.

ya-betmen ★★★★★
()
Ответ на: комментарий от X512

В vscode весьма ограниченная поддержка, если сравнивать с тем, что есть, например, в идее или полной студии.

Навскидку - squash все равно надо будет делать через консоль. И UX при ребейзе с конфликтами не очень хороший.

Midael ★★★★★
()
Ответ на: комментарий от mydibyje

Мне как-то понадобилось закоммитить только часть строк из файла,

Мне кажется закормитеть отдельные строки в GIT нельзя, но внешний инструмент может вынести изменения во временные файлы и добавить в индекс файлы с изменениями в конкретных строках.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от Aber

Мне кажется закормитеть отдельные строки в GIT нельзя

https://git-scm.com/docs/git-add

-p –patch

Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.

This effectively runs add –interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See “Interactive mode” for details.

не оно?

imb ★★
()
Ответ на: комментарий от imb

Не знал, все время для себя открываю что-то новое.

Aber ★★★★★
()
Ответ на: комментарий от Midael

с тем, что есть, например, в идее или полной студии.

Проприетарщину я не рассматриваю.

X512 ★★★★★
()
Ответ на: комментарий от Crocodoom

git commit -am «тут ещё придумай что написать»
git push

splinter ★★★★★
()

Да, add/commit/push.

Это весьма уродливый инструмент и с этим ничего поделать нельзя. Можно свести его использование к минимуму. Я, напирмер, сейчас работаю один, поэтому не делаю никаких бранчей (там вообще жесть) и коммичу только после полного выполнения большого и логически завершённого куска кода. Раз в несколько дней.

Многие IDE предоставляют интерфейс к Git, но не факт что он удобней консоли.

В общем – забей. Не используй то, что тебе не нужно.

Usruser
()

Для решения 90% проблем надо просто коммитить завершенные осмысленные куски кода. Есть задача - ответвился, выполнил, закоммитил, слил.

aiqu6Ait ★★★★
()
Ответ на: комментарий от Crocodoom

Вообще git-клиентов, в т.ч. гуйных, достаточно, но они больше для сложных вещей, а здесь проблема в чём-то другом

Мне почему-то сложные вещи именно с git как раз из консоли удобно разруливать, в гуе удобно только мерж конфликты разрешать.

aiqu6Ait ★★★★
()
Ответ на: комментарий от eternal_sorrow

Большинство нормальных редакторов кода имеют встроенную интеграцию с git.

Встроенную и урезанную, не забывай.

aiqu6Ait ★★★★
()
Ответ на: комментарий от cocucka

На свою зп в мск ты можешь нанять себе подмастерье, который будет за тебя коммитить и пушить, пока кузнец над кодом думает.

Ага, и даст подмастерью доступ на запись по SSH к аккаунту, где исходники правятся. :)

hobbit ★★★★★
()

Как начать пользоваться git?

надо подобрать для себя удобный workflow

Psilocybe ★★★★
()

Специально для тебя сделали: https://github.com/gitwatch/gitwatch
Само добавляет, коммитит и даже сообщение за тебя напишет. Но не пушает.
Для авто-пуша-пула делай это: https://frostming.github.io/legit/

А о чём это я всё? Даже самую хорошую вещь можно расхе**чить, было бы время и желание.

rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 1)

В Atom Git интегрирован.

IIIypuk ★★★★
()
Ответ на: комментарий от aiqu6Ait

Конечно. Использование конопочек и менюшек в редакторе не исключает использование консольного гита, лишь уменьшает необходимость в этом.

eternal_sorrow ★★★★★
()

можно поставить mercurial, tortoisehg и плагин hg-git (обеспечивает 100% совместимость с git сервером, можно пушить и пулить с гитхаба)

познакомился с mercurial раньше чем с git и какое-то время не понимал, почему это люди пишут, что десктопные клиенты для контроля версий отстойны и выполнять команды из консоли гораздо круче

потом увидел эти клиенты для git, для svn, ужаснулся и проникся уважением к tortoisehg - только там всё сделано по-нормальному

на одном экране сразу есть и весь список репозиториев, и дерево комитов, и подробности по выбранному комиту, и возможность выбрать изменения + написать комментарий чтобы сделать очередной комит

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

instant
()
Ответ на: комментарий от akk

Конечно!

Портировали на python 3, tortoisehg на Qt5, выпущена версия 1.0 плагина hg-git.

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

instant
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.