Git-Comments

Владимир 11.09.2009 - 10:12

Спасибо за статью! В ней всё понятно описано, в отличии от других

Jenyay 11.09.2009 - 10:30

Спасибо, рад, что статья понравилась :)

k0sh 15.09.2009 - 12:02

Отличная статья, жду продолжения. Единственное, что не совсем понял: после команды git reset --hard изменения в главном репозитории сбросятся к последнему коммиту, то есть к состоянию после git push, но что делать если эти изменения нам важны?

Jenyay 15.09.2009 - 12:23

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

В принципе, есть еще команда git reset --merge, которая, похоже, и делает то, что нужно для этого случая, то есть склеивает изменения. Правда, я ей не пользовался, надо посмотреть как она работает.

Дмитрий 01.11.2009 - 17:36

Спасибо за статью, все понятно. Но у меня возникла одна проблема. Я изменил редактор для комментариев изменив параметр core.editor на редактор notepad++ и проблема с кодировкой комментов была решена, но подпись(имя автора) к коментариям осталась по всей видимости в кодировке win frowning smiley. Есть идеи как это можно исправить?

Jenyay 01.11.2009 - 18:20

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

Возможно, будет достаточно перевести файл конфига в кодировку utf-8.

Антон 13.01.2010 - 19:48

Действительно большое спасибо всё ясно изложено и понятно для начала использования Git

DarkHobbit 22.01.2010 - 09:20

О кодировках...

За статью в целом спасибо. Однако неприятно удивило описание проблем с кодировками. Это git до сих пор так убог в части интернационализации по сравнению с svn, или это всё же автор чего-то не осилил? Для сравнения: у меня работает сервер svn в гетерогенной сети. Клиенты разные - есть виндовые, есть линуксовые, причём со старым линуксом, где локаль ещё была KOI-8. Из винды, в свою очередь, коммиты часть программистов делает из консоли, часть из TortoiseSVN. НИКАКИХ проблем с кодировками (в т.ч. при чтении закоммиченного из другой ОС) ни разу не видел и не производил никаких танцев с бубном.

И кстати, "убогая виндовая консоль" отлично перенастраивается с cp866 на другие кодировки - см. команду chcp. Но при работе с svn мне не нужно было даже этого.

Jenyay 22.01.2010 - 09:52

DarkHobbit, Спасибо. Посмотрел chcp, действительно консоль можно заставить с помощью этой команды выводить текст в кодировке 1251.

Добавил в статью упоминание про эту команду. Жаль, что ее надо вводить при каждом открытии консоли. Или может есть способ заставить ее по умолчанию выводить текст в нужной кодировке?

Антон 28.05.2010 - 11:10

Из всех статей найденных мною в Интернет эта наиболее вразумительная и понятная для людей которые раньше дела с системами контроля версий не имели(я в том числе). Хотелось бы увидеть описание того как можно изменить редактор для комментариев на notepad++. Спасибо!

Jenyay 28.05.2010 - 19:01

А редактор подключить просто:

git config --global core.editor "Путь до редактора"

k0rg 04.08.2010 - 15:23

Исключения

Можно просто создать файл .gitignore в папке с проектом и этот файл тоже попадёт под контроль версий и будет клонироваться. По поводу кодировок: есть параметры i18n.commitencoding и i18n.logoutputencoding. У меня редактор для каментов внешний (vim) и значения параметров такие: i18n.commitencoding=cp1251 i18n.logoutputencoding=cp866 git commit, когда повторяет после коммита комент - пишет кракозябрами: $ git commit [master bad5269] ═ряюыэхэшх ЁхяючшЄюЁш  Но git log уже нормально: $ git log <skipped>

    Наполнение репозитория

Jenyay 29.08.2010 - 12:18

k0rg, попробовал класть .gitignore в корень проекта - не помогает.

Julia 13.10.2010 - 19:06

Спасибо довольно таки поучительно.........и на понятном языке...

gapsf 29.10.2010 - 14:13

У меня после git config --global core.quotepath false кириллица в имени фала не отображается вообще, типа " .txt":

  1. Not currently on any branch.
  2. Untracked files:
  3. (use "git add <file>..." to include in what will be committed)
  4. .txt

nothing added to commit but untracked files present (use "git add" to track)

А после команды git config --global i18n.commitencoding Windows-1251 ничего не меняется: commit 33c80438543a9152520de233979e7a9f578e85ce Author: unknown <(none)> Date: Fri Oct 29 17:06:59 2010 +0700

    <D0><F3><F1><F1><EA><E8><E9>

И еще - как быть с верхним/нижним регистром? В винде то по барабану, а гит Русский.txt и руский.txt считает разными файлами. Чего посоветуете?

Jenyay 29.10.2010 - 20:35

Знаете, такое ощущение, что, если нужно хранить файлы с русскими буквами, то удобнее использовать Bazaar, а не Git. Там с ними проблем намного меньше.

Как вариант, посмотрите, может у Вас локальные для репозитория настройки перебивают глобальные?

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

N.A.Y. 18.11.2010 - 23:57

Спасибо, очень помогло, а главное - написано понятно. Буду ждать продолжения. Если хочется использовать windows, то зачем тогда заморачиваться с Русский.txt и русский.txt? А если стоит linux,то и проблем не будет.

solo 02.12.2010 - 17:12

to Jenyay: а почему это правильно считать Русский.txt и русский.txt разными? поясните

Jenyay 02.12.2010 - 21:44

to solo: это скорее программерская привычка считать, что переменные Foo и foo - разные переменные. Какой-то объективной причины и не назову, точнее назову доводы "за" с обеих сторон. Тут скорее кому как удобнее, мне как-то больше нравится, когда такие файлы считаются разными.

 15.08.2011 - 15:22

to solo: Потому, что Русский.txt и русский.txt в UNIX-подобных ОС - всегда разные файлы (а в Windows одинаковые). Отсюда и с переменными такая же аналогия.

sasha 05.09.2011 - 15:54

подскажите,как создать репозиторий папки в другом месте? например,папка находится user/project/my_project,а мне надо создать репозиторий в папке user/Dropbox/projects/work,и соответственно добавлять/обновлять в дропбоксе?

Jenyay 05.09.2011 - 16:22

В этом случае я бы сделал в папке user/Dropbox/projects/work основной репозиторий без дерева исходников, а в user/project/my_project - репозиторий, где происходила бы вся работа. И после коммитов в my_project отправлял бы изменения с помощью git push в репозиторий, который лежит в папке дропбокса.

sasha 05.09.2011 - 16:42

а,как сделать основной репозиторий,без дерева исходников в папке user/Dropbox/projects/work, и как после коммита проекта, отправить изменения git push ? просто,я натолкнулся на вас,здесь все разжевано,и имею наглостьgrinning smiley что бы мне и это разжевали

Jenyay 05.09.2011 - 16:49

Вечером домой доберусь, напишу поподробнее. :)

sasha 05.09.2011 - 16:53

буду ждать

Jenyay 05.09.2011 - 21:16

Чтобы создать репозиторий без исходников надо выполнить команду:

git init --bare user/Dropbox/projects/work/my_project

После этого клонируем этот репозиторий:

git clone user/Dropbox/projects/work user/project/my_project

В user/project/my_project создаем все нужные файлы, после этого добавляем их в репозиторий:

git add . git commit -m "Первый коммит"

После этого отправляем изменения в репозиторий user/Dropbox/projects/work/my_project:

git push origin

После этого что-то исправляем в проекте, добавляем изменения с помощью:

git add . git commit -m "Комментарий для коммита"

После этого опять отправляем изменения в синхронизированный с помощью DropBox репозиторий:

git push

А вообще может быть стоит задуматься, чтобы вместо DropBox'а использовать какой-нибудь удаленный репозиторий?

sasha 05.09.2011 - 21:19

спс! я добавил тебя в свой круг (гугл+)

Jenyay 05.09.2011 - 21:28

Ага, тоже тебя добавил :)

Андрей 09.09.2011 - 23:38

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

А еще вопрос в догонку. Как заставить работать внешний редактор? Добавил через консоль пусть до notepad++ посмотрел в файле .gitconfig появилась строка:

editor = c:/Program Files (x86)/Notepad++/notepad++

но работать не хочет выводится ошибки.

Jenyay 10.09.2011 - 11:04

По поводу редактора. Подправьте строку с настройкой редактора на

editor = \"c:/Program Files (x86)/Notepad++/notepad++\" а еще лучше для надежности на editor = \"c:/Program Files (x86)/Notepad++/notepad++.exe\"

А с русскими буквами в путях у git вечно какие-то проблемы. Сейчас у меня установлена не самая последняя версия (надо не забыть обновить), так у меня он вообще перестал писать русские буквы - их просто не выводит.

Андрей 10.09.2011 - 16:42

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

А насчет кирилицы. Я поставил последнюю версию не помогает. ну в принципе это по боку т.к. интересно было чисто с теоретической стороны.

Jenyay 10.09.2011 - 18:03

Может для конкретного репозитория настройки установлены неправильные?

Андрей 10.09.2011 - 18:17

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

Jenyay 10.09.2011 - 18:49

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

Андрей 10.09.2011 - 18:56

Ну я собственно также и подумал. Перезапустил комп не помогло, переустановили Git - не помогло, после переустановки новый репозиторий создал - тоже не помогло. Я просто в шоке. Удалял через сторонюю програму которая обычно все хвосты подчищает, но не в случае с GIT он видать все таки еще где-то следы оставил.Сейчас попробую скачать предыдущюю версию (1.7.4)

Андрей 10.09.2011 - 19:28

Заставил работать. Глупая ситуация вышла - оказывается у меня была прописана переменная GIT_EDITOR с неправильным путем. Вот она и подхватывалась.

Andrew 17.12.2011 - 17:42

Спасибо за статью!

Появилась потребность использовать git. Достаточно подробно все написано, но кое-что не понятно. Подскажите как организовать синхронизацию сайта на удаленном хостинге с локальной версией на windows? Цель - делать поиск и редактирование файлов на локальной машине, потом сливать все на хостинг. Можно ли настроить мастер-ветку на хостинге?

Jenyay 17.12.2011 - 18:21

Вообще сервер с git - это отдельная тема, в состав git входит свой сервер, правда, не знаю, сделали его версию под Windows. И надо обратить внимание, с какими протоколами может работать git.

MirrorBoy 01.02.2012 - 13:39

Благодарности и пожелания

Замечательная статья. Спасибо огромное Все описанное проделывал на Windows Server 2008 и TurtoiseGit Скриншотики немного отличаются, но в основном все сходится. А вот что осталось совсем непонятным, это нарисованные разным цветом линии в колонке Graph. Почему на некоторых узлы круглые, а на некоторых квадратные. И почему на определенном этапе у нас было три бранча: master, test и hello, а линий всего две, красная и черная?

И еще один вопрос: могу ли я не делая Pull, увидеть были ли в центральном репозитории какие-нибудь изменения?

Заранее спасибо за ответы

MirrorBoy 01.02.2012 - 15:06

Еще вопросик

Как вытащить из глобального репозитория отдельную поддиректорию и работать только с ней?

Jenyay 01.02.2012 - 19:47

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

> И почему на определенном этапе у нас было три бранча: master, test и hello, а линий всего две, красная и черная?

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

> могу ли я не делая Pull, увидеть были ли в центральном репозитории какие-нибудь изменения?

Посмотрите вот эту ссылку - http://stackoverflow.com/questions/2514270/how-to-check-for-changes-on-remote-origin-git-repository

> Как вытащить из глобального репозитория отдельную поддиректорию и работать только с ней?

Так сходу не нашел в документации.

Andrew 03.03.2012 - 22:23

Имя репозитория

Подскажите, где узнать имя моего удаленного репозитория?

bva 29.06.2012 - 12:30

Великолепно! Большое спасибо.

UbiVak 12.11.2012 - 10:27

Огромное спасибо!

GabrielleRamires 12.11.2013 - 10:45

Каталог.

Как добавить к существующему репозиторию (локальному) каталог, который находится двумя уровнями выше в иерархии каталогов? Пробовал "git add ../../TxtFile/." Выдает ошибку: fatal: '../../TxtFile/.' is outside repository

Jenyay 12.11.2013 - 13:02

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

Dionis 01.12.2013 - 21:44

Самое нормальное введение в GIT

Спасибо за статью. Действительно это самое удачное руководство для начинающих. Всё подробно расписано простым языком.

Dionis 01.12.2013 - 21:49

Самое нормальное введение в GIT

Спасибо за статью. Действительно это самое удачное руководство для начинающих. Всё подробно расписано простым языком.

Сергей 14.02.2014 - 23:39

Огромное спасибо

Присоединяюсь, это самое лучшее введение в git из тех, что я встречал.

LIME 23.10.2014 - 23:54

+1

спасибо