LINUX.ORG.RU

Объясните принцип работы Git


0

2

Собираюсь работать в команде из четырёх человек. Java, Eclipse, EGit, GitHub. Объясните популярно принцип работы и преимущества git (в манах слишком много и сложно). На мне организаторская работа (создание и поддерживание всех репозитарев, настройка, контроль версий). Как это всё осуществить?

★★★★★

Возьми лучше mercurial.

P.S. Ваш школоло-проект всё-равно не взлетит, так что можешь ничего и не брать.

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

>вы ничего не знаете о DVCS, но решили поюзать git?

юзай Mercurial

А что, к mercurial буква D из DVCS уже не относится?

По сабжу: если все так плохо c DVCS, может начать c svn? =_^-^_=

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

> А что, к mercurial буква D из DVCS уже не относится?

К Mercurial не относится буква «Г».

tailgunner ★★★★★
()

Не слушай ламерьё - mercurial тот же git, только впрофиль, слабее по фичам, на питоне, тормозной, без github и маргинальный.

Объясните популярно принцип работы и преимущества git

Как сказали - читай pro git.

slovazap ★★★★★
()

А точно вообще DVCS нужна? Это конечно модно, удобно и т.п., но команда у вас не шибко большая, а если не собираетесь часто бранчевать - то может лучше svn? Он всё же проще. Иначе пару дней на изучение Гит потратить всё равно придётся.

roy ★★★★★
()

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

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

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

VladimirMalyk ★★★★★
()

Про Гит на РСДН недавно была хорошая вводная статья «Git в картинках».

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

Спасибо, с Mercurial я освоился гораздо быстрее, а с git'ом ещё остались непонятки. С плагином HGE всё очень удобно и всегда под рукой. Будем юзать такой mercurial.

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

Именно такого объяснения я и хотел. Спасибо.
Я так понимаю, что этот алгоритм остаётся неизменным для всех подобных систем: CVS, SVN, GIT...

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

Взял.
P.S. Взлетать он не должен, просто в школе задали задание: сделать проект, можно объединиться в группы. Отправлять емэйлы и прикреплёнными архивами и передавать флешки - неудобно. В нашей группе 4 человека, будем писать простенький игровой движок, делать презентацию, где на примере этого движка объясним, что такое абстрактные классы и с чем это едят. Вот так-то.

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

популярно объясняет преимущества git.

Перед svn и perforce. Это очень важный нюанс.

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

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

Очень мне понравилась эта формулировка. Думаю она интересно бы выглядела с полвека назад, в отрыве от текущего контекста. :)

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

не совсем так. есть два лагеря: централизованные и децентрализованные системы контроля версий.

так вот в централизованных все девы непременно сосут исходники из одного единственного места.

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

профит децентрализованных в том, что можно получить более гибкий воркфлов, когда девы могут обмениваться ветками непосредстенно между собой так, как им удобно. посмотри на ютубе видяшку «линус про git»

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

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

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

Для меркуриала есть bitbucket, вроде он значительно удобнее гуглокода.

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

Я в шоке!!!! В каком классе изучают абстрактные классы? когда я учился в школе мы учили офис и прочее а щас школник может написать простенький игровой движок!!!!

RA
()
Ответ на: комментарий от VladimirMalyk

Хорошо бы, а то иной раз глянешь - грустно. Недавно тоже порадовали - два школьника собрали из конструктора робота, который управляется по блютуза с телефона. Этот робот ездил по парку (не сам конечно) и собирал деньги себе на модернизацию. Весьма успешно :)

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

В каком классе изучают абстрактные классы?

Школа школе рознь.

Kosyak ★★★★
()

Основной принцип git - у каждого разработчика своя полная копия всего репозитория. Грубо говоря, когда делаешь git commit - коммитишь изменения в свою копию, а когда git push - отправляешь все это дело на сервер.

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

> В каком классе изучают абстрактные классы?
Проект же делается не по школьной программе. Тему можно выбрать любую, я выбрал такую.
На деле в школе изучают Pascal, да. Основы работы в текстовых и графических редакторах. Всё, естественно, в венде.

CYB3R ★★★★★
() автор топика

Выкинуть к чертям EGit - кастрированое убожество (пользуюсь git gui и коммандной строкой). О плюсах гита 100500 раз говорилось: - независимость ни от гитхаба ни от интернетов даже, копия репозитория хранится у всех участников проекта - просто удобнее чем всякие SVN, поскольку не требует никаких особых настроек. git init там где хочется и готов репозиторий. - удобная работа с бранчами

anonymous
()
Ответ на: комментарий от Pavval

> То есть ты сначала разлогинился, а потом изобразил «слушай анонимуса»?

Ты ходячее доказательство того, что использование Git ведет к паранойе %)

P.S. даже в разлогиненном состоянии я бы не стал советовать TortoiseHg.

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

Ты ходячее доказательство того, что использование Git ведет к паранойе %)

Нет, меня просто умиляет твое фанбойство. Ну прям школота какая, яро бьющаяся, потому что «в интернете кто-то неправ».

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

> Нет, меня просто умиляет твое фанбойство

Хм, а совсем недавно ты меня в подлоге обвинил.

Ну прям школота какая, яро бьющаяся, потому что «в интернете кто-то неправ».

Ты так говоришь, будто бороться за правду - это что-то плохое %)

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

судя по описанию, хрень какая-то. апологеты mercurial а просветите плз что в нем есть аналогом для гитовских staging area, cherry-pick, stash, submodules, reflog?

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

> судя по описанию, хрень какая-то.

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

остальное не ко мне, я гитом в основном пользуюсь.

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

> Оно такое же глючное поделие как TortoiseSVN?

что не так с TortoiseSVN ?
я не пользую, но интересно, почему следует избегать

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

> апологеты mercurial а просветите плз что в нем есть аналогом для гитовских staging area, cherry-pick, stash

Насколько я понимаю, staging area и stash - это что-то вроде mq; насчет cherry-pick ХЗ, но в mercurial есть расширение transplant, которое занимается cherry-picking'ом в общепринятом понимании.

submodules

subrepos

reflog?

Это какой-то костыль специфичной git-проблемы?

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

Нет, меня просто умиляет твое фанбойство

Хм, а совсем недавно ты меня в подлоге обвинил.

Одно второму не мешает.

Ты так говоришь, будто бороться за правду - это что-то плохое %)

Иди лучше что-то полезное сделай:)

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

> > апологеты mercurial а просветите плз что в нем есть аналогом для гитовских staging area, cherry-pick, stash

Насколько я понимаю, staging area и stash - это что-то вроде mq;


судя по http://mercurial.selenic.com/wiki/MqExtension mq совсем не в тему

насчет cherry-pick ХЗ, но в mercurial есть расширение transplant, которое занимается cherry-picking'ом в общепринятом понимании.


> submodules


subrepos


> reflog?


Это какой-то костыль специфичной git-проблемы?


это что-то вида лога активности по репе

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

>> Насколько я понимаю, staging area и stash - это что-то вроде mq;

судя по http://mercurial.selenic.com/wiki/MqExtension mq совсем не в тему

Судя по http://book.git-scm.com/4_stashing.html и http://gitready.com/beginner/2009/01/18/the-staging-area.html - это сильно кастрированный mq

Это какой-то костыль специфичной git-проблемы?

это что-то вида лога активности по репе

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

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

>>> Насколько я понимаю, staging area и stash - это что-то вроде mq;

судя по http://mercurial.selenic.com/wiki/MqExtension mq совсем не в тему


Судя по http://book.git-scm.com/4_stashing.html и http://gitready.com/beginner/2009/01/18/the-staging-area.html - это сильно кастрированный mq


судя по моей ссылке mq нужен для управления патчами, то есть выполняет роль git format-patch/am/apply но никак не стеша и стейджинга. а судя по http://mercurial.selenic.com/wiki/MqTutorial оно еще и не особо удобно в использовании

Это какой-то костыль специфичной git-проблемы?


это что-то вида лога активности по репе


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


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

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

судя по моей ссылке mq нужен для управления патчами, то есть выполняет роль git format-patch/am/apply но никак не стеша и стейджинга

вот как выглядит git stash (случай работы в уже инициализированной очереди патчей):


hg qref

hg qpop

<edit>

hg qnew quickfix

hg qpush

Такую банальщину, как git stash, вообще странно упоминать, но вот:


hg qrecord whatever

судя по http://mercurial.selenic.com/wiki/MqTutorial оно еще и не особо удобно в использовании

Только если считать git эталоном удобства.

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

ну будет fast-import/bisect/rebase и судя по сравнению сливать перестанет, учитывая, что оно 2011 года, то всё впереди :)

так, что если это какой-то студенческий проект, то почему бы не попробовать.

а вобще мне пофиг, я для красного словца вбросил.

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