Модераторы: ZeeLax, powerfox
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Git over SSH, Не хочет PUSH'иться! 
:(
    Опции темы
WolfAlone
Дата 8.12.2011, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Доброе утро! Установил на сервер под управлением Debian 6: GIT, что бы познакомиться с ним получше... Далее:
1. Скачал несколько клиентов *под Windows (среди которых TortoiseGit и SmartGit)
2. Создал репозиторий
Код

mkdir -p /test_repos/git/r1
git init

3. Создал текстовый файл
4. Добавил текстовый файл
Код

git add file.txt

5. Закоммитил всё это дело...
Код

git commit


Подключился по SSH с помощью клиента (пробовал как и с помощь RSA-ключа, так и с помощью логин+пароль - соединение проходит успешно!), сделал клон репозитория, и началось самое интересное... Вот уже примерно 5 часов, пытаюсь любым возможным способом запихать изменения в "центральный" репозиторий. Но, все попытки тщетны. Последняя ошибка, на которой я остановился звучала примерно так: " 'master' rejected (non-fast-forward) ".

Для проверки решил зарегистрироваться на GitGub... Зарегистрировался. Все те же самые действия, но, всё работает!

Я понимаю, что что-то я делаю не так... Только вот никак не могу понять, что именно? Подскажите пожалуйста!

Добавлено через 1 минуту и 14 секунд
Забыл добавить! PULL  проходит успешно! С правами доступа к файлам всё ок!


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
bilbobagginz
Дата 8.12.2011, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



Цитата(WolfAlone @  8.12.2011,  03:46 Найти цитируемый пост)
Я понимаю, что что-то я делаю не так... Только вот никак не могу понять, что именно? Подскажите пожалуйста!

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




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
WolfAlone
  Дата 8.12.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Пошаговое описание действий моих рук, максимально подробное.

Случилось всё это, в один прекрасный осенний день... Я в очередной раз зашёл на сайт NetBeans, что бы узнать... не появилась ли там случайно новая версия этой замечательной среды! И какого же было мою удивление, когда я узнал, что появилась! Вышла новая NetBeans 7.1 RC. Которая уже более адекватно стала поддерживать CSS, и так же, там появилась полная и я бы даже сказал очень "умная" поддержка GIT (не сравнить с версией 7.0, где поддержка GIT была реализована в виде "костыля"). Моей радости не было предела. Особенно меня вдохновило изучением документации и возможностей это системы! Ну, и конечно же лицензия, совместимость с Mercurial, "считывалка" SVN, поддержка кучи протоколов без "костылей" на подобии "TortoiseHG" для быстрой связки NetBeans + Mercurial в среде Win*, среди которых в т.ч. и "git+ssh", авторизация по ключу и самое главное - всё это УЖЕ встроено в NetBeans и, чисто теоретически - отлично работает.

Мои дальнейшие практические действия:
1. На всякий случай (от греха подальше), нашёл в Интернете руководство по установке GIT на Linux Debian
2. Создал в облаке 2 виртуальных сервера, с "голым" Debian 6.
3. На одном из них, из серверов, запускаю примерно следующую команду:
Код

apt-get update && apt-get install git

3.1 На втором сервере делаю всё в точности с инструкцией:
Код

apt-get update && apt-get install git-core

4. На обоих серверах успешно установлены абсолютно идентичные версии ПО (в чём разница между моим вариантом "git" и вариантом из инструкции "git-core" - я честно говоря не понял, но, не суть)
5. Далее, ознакомившись с основными (ключевыми командами) - создаю репозиторий (на обоих серверах, одинаково):
Код

mkdir -p /srv/repos/git/test1 && cd /srv/repos/git/test1 && git init

6. В итоге, у нас получается 2 идентичных, пустых, не "голых" (bare) репозитория, в которых ничего нет.
7. Все попытки сделать что-то из NetBeans не привели к желаемому результату, в виду чего мной было принято решение скачать специализированный GIT-клиент, SmartGit, а заодно и TortoiseGit (среди прочих)
8. Далее, для проверки работоспособности всего этого "добра", я решил добавить в репозиторий какой-нибудь файл и закоммитить его... Добавляем:
Код

echo 'Hello world!' > demo_file.txt
git add demo_file.txt
git commit

9. Появляется окно текстового редактора "Nano", где просят вписать комментарий для коммита. Вписываем, сохраняем, всё ok.
10. Для того, что бы убедиться, что всё работает "как надо" - удаляю из рабочего каталога ранее созданный файл и делаю "апдейт" рабочего каталога
Код

rm demo_file.txt && git checkout -f

всё прекрасно работает!
11. Запускаем клиент, SmartGit, настраиваем подключение root'a с помощью ключа (без ввода пароля) и делаем Project > Clone. Выбираем куда мы хотим клонировать проект, после чего происходит успешное клонирование проекта по указанному пути (на всякий случай, путь для клона выбран без пробелов и русских символов)
12. Откраваем файл demo_file.txt  в текстовом редакторе и вносим в него незначительные изменения.
13. Делаем "commit"
14. Commit проходит успешно, пытаемся делать PUSH
15. Программа запрашивает, в какую ветку будем PUSH? Так как никаких других, кроме как ветки по умолчанию "master" не создавалось - PUSH'им в ветку "master"
16. ИТОГ: Получаем ошибку: " 'master' rejected (non-fast-forward) ".

P.S. Я конечно понимаю, что "Git это вам не Mercurial" и так далее... Но, не ужели всё настолько "круто" и сложно, что такое банальное действие как "проталкивание" требует каких-то нестандартных действий?


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
bilbobagginz
Дата 10.12.2011, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



опять "ту мач информейшен". 

я не понял зачем ты 2 РАЗА сделал git init 
ты сделал чекаут с одного, а пуш в другой. так не делают:
в пункте 6, у тебя не получилось "2 идентичных репозитория", 
а "2 репозитория, файловый контент которых идентичен"
у каждого из них есть свой график хэшей. с разными значениями.
для того, чтобы как-то их соединить, нужно сделать слияние (мерж), аккуратно. но так не делают.
кстати если я правильно понял, то и в меркюриал у тебя бы не получился пуш нормальным.
если бы были файлы, тебе бы пришлось КАЖДЫЙ файл мержить. вручную, т.к. нет общей истории слияний.


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

Это сообщение отредактировал(а) bilbobagginz - 10.12.2011, 11:44


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
WolfAlone
Дата 10.12.2011, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Прошу прощения, видимо где-то я упустил 1 момент... Дело происходит примерно так, вкратце:

Два репозитория были созданы автономно друг от и между собой связи никакой не имеют. Оба они располагаются на разных Debian-based серверах, и были созданы исключительно для тестов, оба. Причиной тому стало, то, что в какой-то момент мне показалось, что команды:
Код

apt-get install git

и
Код

apt-get install git-core

дают разный эффект. В последствии выяснилось, что это не так, по этому у нас получилось просто два одинаковых репозтория на разных серверах, с каждый из которых, не зависимо друг от друга я пытаюсь наладить "контакт" из ОС Windows 7 (это очень важно, так как большинство из будущих пользователей репозитория(-ев) имеют на борту именно эту ОСь.

Цитата(bilbobagginz @  10.12.2011,  11:42 Найти цитируемый пост)
кстати если я правильно понял, то и в меркюриал у тебя бы не получился пуш нормальным.

С mercurial в плане пушей и пр. - всё просто замечательно! К нему вообще претензий нет  smile Претензии пожалуй есть только к NetBeans, за то, что для GIT'a всё есть "из коробки", а для Mercurial только базовый функционал. Но, это я так, к слову.

Я забыл упомянуть ещё один, видимо, очень важный момент. Если я создаю "голый" репозиторий:
Код

git init --bare

то, все выше описанные проблемы куда-то деваются сами собой! Всё прекрасно пушится/пуллится/коммитится!


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
WolfAlone
Дата 10.12.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Что-то мне на глаза стали попадаться какие-то странные материалы, которые гласят нечто вроде "пушить в 'НЕ_ГОЛЫЙ' репозиторий не стоит! В него можно только пуллить". И везде приводиться система связки двух репозиториев, при этом один из них получается нечто вроде "прокси-репозиторий".

Это меня наводит на мысль о том, что в репозиторий у которого есть рабочий каталог - вообще нельзя пушить?


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
bilbobagginz
Дата 10.12.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



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



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
WolfAlone
Дата 10.12.2011, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Хорошо, хоть Mercurial не наделили такой философией... Вот сколько работаем, ещё такой "философской проблемы" не возникало. Нет, бывает конечно, что ставиться отдельный так сказать "главный" репозиторий, в который (с помощью панели управления) сливаются наиболее удачные (функциональные, и/или обладающие ещё каким-то крайне полезным/нужным свойством) версии исходников (*я бы назвал это "мажор релизы"), но что бы отделить "продакшн-репу" от "воркинг-репы", это для меня наверное навсегда останется загадкой... Получилась, распределённо-распределённая система контроля версий, которая в случае каких-то конфликтов, насколько я понимаю, потребует вмешательства "администратора продакшн-репозитория".

Я конечно могу заблуждаться, но на данный момент всё это выглядит (для меня) именно так.

Но, для меня вопрос "пуша" в репозиторий с рабочим каталогом по прежнему остаётся открыт. Может быть есть какая-нибудь волшебная команда, типа "я общеаю GIT'у, что не буду изменять файлы в рабочем каталоге"? Ну или какой-нибудь другой способ пушить в репозиторий с рабочим каталогом без каких либо дополнительных цепочек типа "репо -> репо"?


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
bilbobagginz
Дата 11.12.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



ты не проникся. читай мануалы ;)



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
WolfAlone
Дата 15.12.2011, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Цитата(bilbobagginz @  11.12.2011,  22:00 Найти цитируемый пост)
ты не проникся. читай мануалы ;)

Почитал, проникся!

Как выяснилось, судя по всему, сказивается изначальное назначение GIT - контроль иходников ядра LINUX. Судя по всему, именно по этой причине GIT изначально как бы вообще не предусматривает такого понятия, как "обновление рабочего каталога", к тому же, сам по себе, рабочий каталог в "головном" репозитории он тоже не предусматривает. В какой-то степени это правильно, зачем для СИ-кода рабочий каталог в "головном" репозитори...

Как выяснилось несколько позже, GIT оснащён несколько большим функционалом в области ХУКОВ, чем Mercurial (*решение принято на основе найденной документации), например, переменных передаваемых в обработчик ХУКа, в GIT я насчитал поболее...


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
powerfox
Дата 22.12.2011, 00:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 10
Всего: 97



Цитата(WolfAlone @  15.12.2011,  03:12 Найти цитируемый пост)
Как выяснилось, судя по всему, сказивается изначальное назначение GIT - контроль иходников ядра LINUX. Судя по всему, именно по этой причине GIT изначально как бы вообще не предусматривает такого понятия, как "обновление рабочего каталога", к тому же, сам по себе, рабочий каталог в "головном" репозитории он тоже не предусматривает. В какой-то степени это правильно, зачем для СИ-кода рабочий каталог в "головном" репозитори...


Цитата(WolfAlone @  15.12.2011,  03:12 Найти цитируемый пост)
Почитал, проникся!

Не проникся.


--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
pythonwin

В этом форуме предпочтительны вопросы на следующие темы:

  • Конкретные вопросы о конкретном ПО. В таких вопросах желательно привести точные данные о программе: версия программы, версия ОС, версия ядра, и проблему в форме: сделал Х, хотел получить Y, а получил Z.
  • Неконкретные вопросы о выборе ПО
  • Обзоры - как дополнение в ветку Обзоры


  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема »


 




[ Время генерации скрипта: 0.1549 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.