
Aldar
17.06.2016
09:46:20
только что прочитал про бисект это просто бинарный поиск

Aragaer
17.06.2016
09:46:31
интерактивный ребейз это просто на самом деле

Aldar
17.06.2016
09:46:36
по списку коммитов

biert
17.06.2016
09:46:44
как часто это используется

Google

Aragaer
17.06.2016
09:46:50
ну да, бинарный. Только он не требует линейности истории

Aldar
17.06.2016
09:47:02
наверное для билд инженера полезный навык

Aragaer
17.06.2016
09:47:07
увы, без адекватного автоматического тестирования - чаще, чем хотелось бы

biert
17.06.2016
09:47:16
такая вакансия есть?

Андрей
17.06.2016
09:47:22
короче, уметь - это знать что будет после выполнения команды. Ну логично в общем-то.

Aragaer
17.06.2016
09:47:41
ну и там еще магия вида "пристальным взглядом в дифф коммита понять, что именно привело к такой поломке"
ну ... не совсем "знать, что будет после выполнения"

Aldar
17.06.2016
09:48:08
в последней версии гита добавляют какой то интеллект в дифф

Aragaer
17.06.2016
09:48:36
ну там просто коммит, который вносит новую функциональность, но почему-то больше не хватает nvram памяти
для совсем другой функциональности
ну и вот по диффу и коду понять, что просто в одном месте увеличили размер структуры
на 20кб.

Андрей
17.06.2016
09:49:51
ну понять - это уже скилл разраба. А открыть дифф гита - это уж очень тривиально

Google

Aragaer
17.06.2016
09:50:40
Пример сложной операции с гитом - я начал писать какой-то код, но на сервер кто-то закинул апдейт и мне надо его к себе подтянуть
а я уже успел сделать какие-то коммиты, но еще их не пушил

Andrei
17.06.2016
09:51:09
https://pp.vk.me/c636427/v636427417/a6be/99iYHOl4hcQ.jpg

Aragaer
17.06.2016
09:51:09
git stash; git pull --rebase; git stash pop
точнее она "сложная" - в кавычках

Андрей
17.06.2016
09:51:43
а сташ коммиты тронет?

Aragaer
17.06.2016
09:51:47
потому что на самом деле все операции-то очевидны

biert
17.06.2016
09:51:51
смешно

Aragaer
17.06.2016
09:51:58
нет, сташ просто уберет текущие изменения
а pull --rebase откатит коммиты, вытащит апдейт и снова накатит коммит

Андрей
17.06.2016
09:52:50
у меня не так бывает. Разрабтка в отдельной ветке. В мастер пулл с сервера. И потом два мержа
никогда проблем не было

Aragaer
17.06.2016
09:53:07
и это мерж коммиты
git pull это git fetch + git merge. git pull --rebase это git fetch + git rebase
вот кстати еще вопрос. Сидел, чота кодил, чота коммитил, а потом на сервере что-то новое, а мое вообще-то надо просто выбросить
.. делается в 2 команды
rm -rf и git clone наверно подойдет, но можно проще 8)

Андрей
17.06.2016
09:55:30
hard reset?

Aragaer
17.06.2016
09:56:12
да, это одна из двух команд
тут иногда случается удивление от осознания факта, что master, origin/master и master на сервере это три совершенно разные вещи.

Google

Андрей
17.06.2016
09:58:24
это если ураган прошел?

Aragaer
17.06.2016
09:59:01
вовсе нет, это нормальная ситуация, случается почти всегда

Alexey
17.06.2016
09:59:03

Aragaer
17.06.2016
09:59:59
ориджин это ремоут. Ремоуты это удаленные репозитории. Сервер является одним из ремоутов. Когда делается клон, автоматически регистрируется один ремоут - откуда был клон. По умолчанию он называется ориджин.

Alexey
17.06.2016
10:00:17
о, а можно сразу несколько ремоутов запиздячить?

Aragaer
17.06.2016
10:00:22
запросто

Alexey
17.06.2016
10:00:24
Ъ. уже не зря сюда снова вернулся.
спс, пойду на обеде читну доку что ли.

Aragaer
17.06.2016
10:00:38
что еще смешнее, можно пушить и пуллить без ремоутов, явно указывая урлы

Alexey
17.06.2016
10:00:51
О_о вообще огонь!

Aragaer
17.06.2016
10:01:14
пути в файловой системе тоже годятся. ссш. И самый юмор это что корень текущего репозитория тоже!
откуда у меня когда-то родился фокус push . HEAD^3:master

Aragaer
17.06.2016
10:02:01
но потом мне объяснили, что тут можно поржать, но по сути branch -f сделает то же самое

Alexey
17.06.2016
10:02:44
так, у меня был случай, что я выебнулся неудачно и у меня детачед хед случился. как зааттачить взад? изменения в стеш, вернуть башку, стеш поп?

Aragaer
17.06.2016
10:03:24
а что хочется?
детачед хэд получается при любом чекауте на тег или хэш

Alexey
17.06.2016
10:04:07
хм, я на тег прыгнул и забыл вернуться что ли?

Aragaer
17.06.2016
10:04:13
git checkout -b имя-ветки создаст новую ветку, указывающую на нынешнее состояние (и оно уже больше не будет detached)
например

finkel
17.06.2016
10:04:36

Google

Alexey
17.06.2016
10:04:44

Aragaer
17.06.2016
10:04:48
но можно и любую существующую ветку просто подтянуть. Если это fast-forward, то и pull сгодится
нет, не создается
ты указываешь путь к существующей репе

Alexey
17.06.2016
10:05:11
так, в телегу срочно нужно как на лепре сделать — чтобы в профиль людям можно было свои заметки делать.

Admin
ERROR: S client not available

finkel
17.06.2016
10:05:40
xx@testbox:~/project$ git remote -v
origin /store/Repo.git (fetch)
origin /store/Repo.git (push)

Aragaer
17.06.2016
10:05:45
например твой коллега тоже сделал клон. Он накодил коммит, хочет его показать тебе, но не хочет пушить его на сервер. Но допустим к его машине есть доступ по ssh.

Sasha
17.06.2016
10:06:00
Пагни, кто-нибудь глубоко-глубоко работал с facebook api?

Aragaer
17.06.2016
10:06:02
ты просто напрямую от него берешь и подтягиваешь
а если хочешь делать это регулярно - то прописываешь в ремоуты
или вот например у меня проект, который я кидаю одновременно в битбакет и в гитхаб
есть кстати магия, что origin это push only, но сразу в несколько реп.
но это я наизусть не вспомню, надо гуглить 8)

Aldar
17.06.2016
10:07:43
Откуда ты гиту научился? Наверное проблемы какие то были с ним нетривиальные)

Aragaer
17.06.2016
10:07:53
при работе с хероку у тебя на самом деле заводится еще один ремоут - хероку. И пуш в него это на самом деле деплой. Просто хероку тулз это скрывает

Aldar
17.06.2016
10:08:16
Мне просто всегда достаточно было branch, remote, push, pull, fetch, rebase, commit, checkout

Aragaer
17.06.2016
10:08:25
мм... ну ... много разных мелочей, всякие интересные статьи и просто чтение интересных вопросов на SO

finkel
17.06.2016
10:08:57
??

Google

Aragaer
17.06.2016
10:09:05
про push в точку это был реальный случай, когда надо было в bare репозитории ветку master сдвинуть назад относительно его нынешнего состояния.
А потом я запостил это в качестве ответа на SO, а мне туда плюсов накидали и рассказали про branch -f

Aldar
17.06.2016
10:09:30
в конторе просто правило было перед мерджем ребейз обязательно, чтобы история линейная была

Artem
17.06.2016
10:09:44

Aragaer
17.06.2016
10:10:09
http://stackoverflow.com/questions/1628563/move-the-most-recent-commits-to-a-new-branch-with-git/22654961#22654961
плюсы продолжают сыпаться на этот ответ

Alexey
17.06.2016
10:10:29

Aragaer
17.06.2016
10:13:17
в итоге гит для меня это такой же инструмент, как допустим баш или вим. Я ими пользуюсь, объясняю другим, но какие-то вещи постоянно узнаю сам. Просто я почитал в итоге книжечки, где было описано именно нутро гита и оно все сложилось в цельную картинку.
Всем всегда рекомендую git magic для ознакомления. И для прикола git branching game на гитхабе. Но один мой знакомый сказал "не, я хочу чтоб сразу мозг взрывало и буду читать pro git". Я до про гита добрался только еще через несколько лет.

Jenny
17.06.2016
10:14:32
Ничего себе вы наспамили

Aragaer
17.06.2016
10:14:53
/me прикинул свой опыт использования гита..... Наверно с 2008 года.

Aldar
17.06.2016
10:14:55
я про гит прочитал
там просто на низком уровне объясняется что такое коммиты, ветки и прочее

Jenny
17.06.2016
10:15:37
/me

Aragaer
17.06.2016
10:16:17
ага, про разделение на plumbing и porcelain.
А еще где-то было ... think like git вроде. И там немного про теорию графов. Я каждый раз когда кому-то что-то объясняю про гит, то сразу беру ручку и начинаю рисовать графы коммитов 8)