LINUX.ORG.RU

Релиз Git 2.6.0

 


0

3

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

Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Android, LibreOffice, Systemd, X.Org, Wayland, Mesa, Gstreamer, Wine, Debian, DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Xen, Minix.

По сравнению с прошлым выпуском в новую версию принято 479 изменений, подготовленные при участии 67 разработчиков, из которых 15 впервые приняли своё участие в разработке.

>>> Подробности

★☆

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

Git - это мощная вещь. МОЩНАЯ! Мой любимый Git, процветай!

anonymous
()

Все никак не дочитаю краткое руководство по Git. Остановился где-то на 700-й странице.

MEZON ★★★★★
()

подробности со ссылкой на опеннет

За бан.

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

Реально краткое руководство по git занимает 15 страниц. С введением для тех, кто в первый раз видит VCS, с объяснением что такое DVCS и чем git отличается от cvs/svn и с набором скриншотов о том как пользоваться TortoiseGit в венде.

А под 700 страниц может занимать книженция, где тебе расскажут, что на базе git можно налабать свою ФС и прочие низкоуровневые извращения, от которых у меня в своё время при чтении последних глав ProGit(которые ласково помечены как «для продвинутых пользователей») волосы дыбом встали.

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

Отлично! Я даже почти поучаствовал (мой патч хотели принять, но в итоге отклонили, обоснованно).

DELIRIUM ☆☆☆☆☆
()

Git'окапец близок?

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

Чем он лучше Piper?

Camel ★★★★★
()
Ответ на: Git'окапец близок? от Camel

Чем он лучше Piper?

Рейчел заметила, что такой принцип хранения исходников позволяет разработчикам Google «… чувствовать необычную свободу в использовании и комбинировании кода других проектов»

В своём докладе она оценила число строк кода, который отвечает за работу всех интернет-сервисов Google: выяснилось, что число равно примерно 2 миллиардам.

Как-то слабо клеится реюз и такое количество кода.

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

Реально краткое руководство по git занимает 15 страниц. С введением для тех, кто в первый раз видит VCS, с объяснением что такое DVCS и чем git отличается от cvs/svn и с набором скриншотов о том как пользоваться TortoiseGit в венде.

А ссылку ?

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

Реально краткое руководство по git занимает 15 страниц.

А потом всё stack overflow усеяно РЕБЯТА ПОМОГИТЕ Я СЛУЧАЙНО PULL КАКИЕ-ТО КОНФЛИЕТЫ ПОЛЕЗДЛИ RESET НЕ ПОМОГАЕТ DETACHED HEAD ЧТО ДЕЛАТЬ ХЕЛП!!!!!!!!

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

Реально краткое руководство по вождению автомобиля занимает 15 страниц. Достаточно знать газ, тормоз, сцепление, руление - и можно ехать. Автомобиль - это просто.

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

О, тру-ынтырпрайзеры подтянулись! Мило :)

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

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

По крайней мере проще, прости господи, svn.

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

Пару кружек чая этому товарищу!

Вот этого руководства не-кретинам будет достаточно: http://think-like-a-git.net/. Прочим едва ли что-то поможет.

anonymous
()

GIT реально радует.

Простота кажущаяся его удивляет. Отличный пример хорошего дизайна.

Чтобы осилить, достаточно понять и знать базовые вещи. Научиться пользоваться справкой - успех.

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

Если человек полез в дебри git-а не читая манов - это его проблемы.

Врубиться в любую сложную систему методом научного тыка = море боли и ужаса

Мне для ознакомления 15 страниц хватило чтобы прочувствовать мощь гита. Захотелось большего - осилил ProGit.

И да - я не говорил что git простой

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

У гита отличная внутренняя архитектура. Лучше, чем у меркуриала и базара, не говоря о svn.

Но у гита шизофреничная система команд, полная протекающих абстракций.

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

Плюс общая нелогичность интерфейса, когда систему опций у команд нельзя понять, только запомнить. Из-за этого даже понимания внутренней архитектуры недостаточно - нужно привыкать, что git branch -d, но git remote rm и т. д. И всё равно случаются открытия уровня «я случайно двоеточие, и git push УДОЛИЛ мою ветку с сервера». Когда такой софт делает микрософт - все на говно исходят. А Линус какает поняшками, ему можно.

К сожалению, из-за фанбоизма и истерии никто этого признавать не хочет. Плюс линусов задвиг на обратной совметимости. Поэтому гита с человеческим интерфейсом никогда не будет. Вернее будет, когда люди придумают очередную киллер-фичу, которая убьёт git, как git убил svn. Тогда уже, наученные опытом, они с самого начала будут думать о UI и UX, а не только о структурах данных, как Линус-системщик.

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

Как он в производительности?

Приходилось как-то тянуть какие-то сорцы - жуткие тормоза.

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

... когда внезапно появляются много сущностей или даже всего парочка лишних: тут явно что-то интересное происходит в восприятии действительности ...

anonymous
()
Ответ на: No U! от Camel
sorrymak@trisquel ~/test $ hg init
sorrymak@trisquel ~/test $ echo test | cat >test
sorrymak@trisquel ~/test $ hg add
добавляется test
sorrymak@trisquel ~/test $ hg commit -m "test"
sorrymak@trisquel ~/test $ hg push ../test2
проталкиваем в ../test2
поиск изменений
добавляем наборы изменений
добавляем манифесты
добавляем изменения в файлы
добавлено 1 наборов изменений с 1 изменениями в 1 файлах

Всё просто и понятно. А что с гитом?

sorrymak@trisquel ~/test $ git init
Initialized empty Git repository in /home/sorrymak/test/.git/
sorrymak@trisquel ~/test $ git add
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
sorrymak@trisquel ~/test $ git add test 
sorrymak@trisquel ~/test $ git commit -m "teste"
[master (root-commit) 8530369] teste
 Committer: Sorrymak <sorrymak@trisquel>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 test
sorrymak@trisquel ~/test $ git push ../test2/
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '../test2/'
Какие к чёрту бранчи, какие refs? Мне не нужны бранчи, я хочу запушить изменения во второй локальный репозиторий.

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

И дальше:

sorrymakm@trisquel ~/test $ git push ../test2/ master
Counting objects: 3, done.
Writing objects: 100% (3/3), 197 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ../test2/
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '../test2/'


Вот. Hg проще.
the_electric_hand ★★
()
Ответ на: комментарий от Pinkbyte

с набором скриншотов о том как пользоваться TortoiseGit в венде.

TortoiseGit - уг. Уж лучше тогда использовать «Git Extensions». А еще лучше - TortoiseHg.

X-Pilot ★★★★★
()
Ответ на: комментарий от the_electric_hand
[ignatenko@oc2108327217 test]$ git init repo1 
Initialized empty Git repository in /home/ignatenko/test/repo1/.git/
[ignatenko@oc2108327217 test]$ git init repo2 --bare
Initialized empty Git repository in /home/ignatenko/test/repo2/
[ignatenko@oc2108327217 test]$ cd repo1
[ignatenko@oc2108327217 repo1]$ git remote add repo2 /home/ignatenko/test/repo2
[ignatenko@oc2108327217 repo1]$ echo test > test
[ignatenko@oc2108327217 repo1]$ git add test
[ignatenko@oc2108327217 repo1]$ git commit -m "teste"
[master (root-commit) 1e41d1e] teste
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 test
[ignatenko@oc2108327217 repo1]$ git push repo2 master
Counting objects: 3, done.
Writing objects: 100% (3/3), 215 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /home/ignatenko/test/repo2
 * [new branch]      master -> master
i_gnatenko_brain ★★★★
()
Ответ на: комментарий от i_gnatenko_brain

sorrymak@trisquel ~ $ mkdir test test2
sorrymak@trisquel ~ $ cd test
sorrymak@trisquel ~/test $ git init
Initialized empty Git repository in /home/sorrymak/test/.git/
sorrymak@trisquel ~/test $ echo test > test
sorrymak@trisquel ~/test $ git add test 
sorrymak@trisquel ~/test $ git commit -m "test"
[master (root-commit) 44d8908] test
 Committer: Sorrymak <sorrymak@trisquel>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 test
sorrymak@trisquel ~/test $ cd ../test2
sorrymak@trisquel ~/test2 $ git init
Initialized empty Git repository in /home/sorrymak/test2/.git/
sorrymak@trisquel ~/test2 $ cd ../test
sorrymak@trisquel ~/test $ git push ../test2 master
Counting objects: 3, done.
Writing objects: 100% (3/3), 199 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ../test2
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '../test2'
sorrymak@trisquel ~/test $ 
the_electric_hand ★★
()
Ответ на: комментарий от anonymous

GIT реально радует.

Простота кажущаяся его удивляет. Отличный пример хорошего дизайна.

Чтобы осилить, достаточно понять и знать базовые вещи. Научиться пользоваться справкой - успех.

хороший троллинг, годный :)

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