Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Расскажите за git [windows]

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

NightSpawn



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поможите настроить git под Windows. Есть некий проект, который мне перешел по наследству, пред. программист использовал git, но насколько я смог разобраться, исключительно локально, т.е. в папке с проектом все и хранилось и ни с чем удаленным не синхронизовалось. Я хочу добавить к этой существующей схеме удаленный "сервер" (некий комп с windows, в моей локальной сети, исполняющий функции мегасервера). Что я сделал: сделал копию папки с проектом на сервере, общим доступом открыл доступ к этой папке, клонировал проект с сервера к себе на комп. Вроде как бы все =) можно видеть коммиты и вроде счастье, но при попытке синхронизации (push) с сервером, git ругается:  
 

Цитата:
git.exe push -v --progress  "origin" master:master
 
Pushing to //10.0.0.31/Repo/prj
Counting objects: 1194, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1126/1126), done.
Writing objects: 100% (1129/1129), 46.92 MiB | 1.47 MiB/s, done.
Total 1129 (delta 725), 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 //10.0.0.31/Repo/prj
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '//10.0.0.31/Repo/prj'
 
 
git did not exit cleanly (exit code 1) (83445 ms @ 07.05.2014 11:01:39)

 
Подскажите что ему не нравится?

Всего записей: 87 | Зарегистр. 01-01-2007 | Отправлено: 04:04 07-05-2014 | Исправлено: NightSpawn, 09:19 07-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightSpawn
Для работы git расшаривать папки не нужно. Вообще. Вместо этого на «суперсервере» необходимо для начала установить msysgit. Ну а дальше - как описано в документации в том числе на русском.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 10:31 07-05-2014
NightSpawn



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa
С учетом того, что сервер будет исполнять роль всего навсего удаленного хранилища персонально для меня, так ли необходима установка msysgit? Я попробовал сделать push в новую ветку, не master, все прошло успешно. Значит моя схема не настолько утопична.

Всего записей: 87 | Зарегистр. 01-01-2007 | Отправлено: 01:48 08-05-2014
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightSpawn
Если точно не нужен msysgit - тогда зачем git? Копируй себе ручками файлы на удаленную шару и не парься.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 09:29 08-05-2014
MARKSIST_UA



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 2 | Зарегистр. 14-09-2015 | Отправлено: 15:29 14-09-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MARKSIST_UA, пробовал играть с путями на сервере? По-моему слэш лишний:

Цитата:
git.exe clone --progress -v "ssh://git@сервер:/C:/repo" "C:\repo"
, т.е. попробуй его убрать:

Цитата:
git.exe clone --progress -v "ssh://git@сервер:C:/repo" "C:\repo"

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 09:58 15-09-2015
MARKSIST_UA



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 2 | Зарегистр. 14-09-2015 | Отправлено: 11:08 15-09-2015
zzz528

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какая же это замысловатая програма.  
 
Ну сделал git clone тру..ля.ля , скачало непонятные файлы, запакованы скорее всего, а дальше что, как с этим работать. Я и смотрел файлы док - ответа не нашел.

Всего записей: 1643 | Зарегистр. 20-06-2005 | Отправлено: 17:46 15-09-2015
andre_d

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Начинаю осваивать Git. Пока работаю один
Создал локальный репозиторий, создаю  коммиты,  в логе видна все история, все ОК.
Но есть непонятка с движением туда-сюда.
Понадобилось откатится на два коммита назад.  
  делаю reset  -  нужный коммит в индексе
  делаю chekout  - нужный коммит в рабочем каталоге
      ... вроде все OK    но !!!      
  Как вернуться к последнему созданному коммиту? В логе его нет ?  
 
Работаю под Windows. Наиболее удобным кажется использование SmartGit.  перечитал
много всяких doc,  но ответа  про столь банальное действие  не нашел.

Всего записей: 130 | Зарегистр. 17-09-2004 | Отправлено: 18:13 19-10-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andre_d, понадобилось откатиться или только лишь переключиться на др. коммит?
reset выполняет именно откат изменений, поэтому в логе и нет последних коммитов. Чтобы просто вернуться к какому-то раннему коммиту необходимо просто делать checkout.

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 07:50 21-10-2015
andre_d

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
andre_d, понадобилось откатиться или только лишь переключиться на др. коммит?
reset выполняет именно откат изменений, поэтому в логе и нет последних коммитов. Чтобы просто вернуться к какому-то раннему коммиту необходимо просто делать checkout.
 

Спасибо, надо было просто переключиться на время. Вроде по Checkout получается то, что хотелось - перемещаться вперед назад. - В рабочем каталоге появляются нужные состояния.
 
Не очень понятно, что происходит   с индексом.  Я думал все пересылки должны через него происходить. И не удается встроенным просмотрщиком различия смотреть.

Всего записей: 130 | Зарегистр. 17-09-2004 | Отправлено: 15:07 21-10-2015 | Исправлено: andre_d, 15:08 21-10-2015
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Расскажите за git

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

Всего записей: 2025 | Зарегистр. 02-09-2005 | Отправлено: 18:27 21-10-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не очень понятно, что происходит   с индексом.  Я думал все пересылки должны через него происходить.

andre_d, а что происходит с индексом и о каких пересылках идёт речь?
 

Цитата:
И не удается встроенным просмотрщиком различия смотреть.

Речь про smartgit? Не показывает изменения или что? Сам я пользуюсь связкой tortoise git + araxis merge ни разу не испытывал неудобств, в отличии от новомодных SourceTree, GitHub Desktop и им подобных... Видимо привычка ещё с tortoise svn

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 07:34 22-10-2015
andre_d

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
Не очень понятно, что происходит   с индексом.  Я думал все пересылки должны через него происходить.
 
andre_d, а что происходит с индексом и о каких пересылках идёт речь?
 

Насколько я понял принцип работы GIT, из рабочего каталога информация сначала переносится в индекс (add), а потом собственно в репозитарий(локальный) (commit). И, соответственно, при необходимости  вернуться к какому-то состоянию, его нужно переслать сначала в индекс,  а потом в рабочий каталог. А сейчас получается что по Checkout в SmartGit-e у меня сразу нужное состояние оказывается в рабочем каталоге. А индекс вроде и ни при чем.  

Цитата:
 
И не удается встроенным просмотрщиком различия смотреть.
 
Речь про smartgit? Не показывает изменения или что? Сам я пользуюсь связкой tortoise git + araxis merge ни разу не испытывал неудобств, в отличии от новомодных SourceTree, GitHub Desktop и им подобных... Видимо привычка ещё с tortoise svn
 

Да про SmartGit. Когда у меня в рабочем каталоге было текущее состояние, его встроенный просмотрщик различий достаточно удобно показывал что когда было изменено. А когда в рабочем каталоге восстановленное, изменения не показываются(хотя может и действительно непонятно что с чем должно сравниваться)
TortoiseGit что то у меня не прижился. Он похоже завязан на контекстное меню и наверное как-то кривенько встал. Но попробую еще раз. Спасибо!

Всего записей: 130 | Зарегистр. 17-09-2004 | Отправлено: 13:55 23-10-2015 | Исправлено: andre_d, 13:58 23-10-2015
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Расскажите за Git...
 
Привык к SVN и TFVC.
Перехожу на проект, где команда использует Git.
- А как вы блокируете файл от перезаписи другими участниками, пока сами над ним работаете ?
- При помощи Skype...  
-
 
Я понимаю, что идея заблокировать файл не очень ложится на концепцию распределённого хранилища. Но потребность совместной работы над бинарными файлами ведь никуда не девается. Вне зависимости от красивых теорий
Кому Git привычен, поделитесь, как вы из этого выкручиваетесь.
А то гугл больше переживает о блокировке GitHub, или выдаёт какие-то способы лечения ангины автогеном через зад...

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 06:18 23-01-2016
Alexzzy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KDPoid

Цитата:
Я понимаю, что идея заблокировать файл не очень ложится на концепцию распределённого хранилища.

Надо признать, что совсем не ложится - нет центра, все равны.
Я думаю надо решать на уровне организации командного рабочего процесса, при котором не будет необходимости блокировать файлы. Вариантов реализации и статей на эту тему много.  
Примеры:
http://habrahabr.ru/post/106912/
http://habrahabr.ru/post/75990/

Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 13:32 23-01-2016
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Описанные техники подходят для случаев, когда результат работы потом можно мержить. Пока это исходники, всё красиво. А если часть проекта - бинарные файлы ? Алиса и Боб породили свои ветки, поработали в них над одним и тем же файлом...  
Какой бы сложности веток мы не наплели потом, рано или поздно, их работа встретится в ветке master..
И тогда один из них увидит, как её работа будет спущена в унитаз затёрта работой другого.
 
А я, прежде чем дорабатывать структуру базы в каком-нибудь средстве проектирования, должен буду обзвонить всех участников и убедиться, что никто сейчас не работает над этими же диаграммами... И это мне ещё повезло, что у меня файл один...
 
Три рисователя иконок, встретившись в одном репозитории, будут думать, что ад и git - это синонимы...

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 21:03 23-01-2016 | Исправлено: KDPoid, 21:03 23-01-2016
Alexzzy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KDPoid

Цитата:
Описанные техники подходят для случаев, когда результат работы потом можно мержить

Во втором примере только один человек пушит в master. Все проблемы разруливания на него ложатся.
Если главных нет, то, как вариант:
- приготовились к push
- делаем pull
- если по результату pull-а необходимо разруливание - разруливаем и делаем опять pull, и так по кругу пока разруливания не потребуется
- делаем push
- смотрим результат и если необходимо разруливание, что мало вероятно - разруливаем по ситуации и по аналогичному алгоритму

Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 02:48 24-01-2016
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я говорю о ситуации с бинарными файлами.  
Единственный вариант разруливания - выбросить часть работы.
Вот, к примеру, в проекте заказчик обфукал 150 иконок как непонятные. Алиса и Боб ушли медитировать, и через 3 дня выдали по 50 иконок, которые считают более понятными.
Вполне естественно, что в 20 случаях, они опонятили одну и ту же иконку. Что тут можно разрулить ? Главный пушер в master просто 20 раз скажет "извини, твой труд пропал не напрасно"
 
Получается, как только мы переходим от работы стаи одиночек, "каждый над своим независимым кусочком", к совместной работе над общими файлами, тут и выясняется, что git не для этого... Нужно какое-то внешнее средство коммуникации. Разводящий, централизовано управляющий правками, или канбан-доска, какая-нибудь...
 
Вот про это я и спрашиваю. Если вы реально практикуете Git, что вы используете, чтобы упорядочить очередь людей, желающих править один и тот же бинарный файл ?

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 09:14 24-01-2016
Alexzzy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KDPoid

Цитата:
Я говорю о ситуации с бинарными файлами.  

Я тоже, и в частности про бинарный файл средства проектирования. В этом случае ничего не пропадает, т.к. в средстве проектирования имеется merge.

Цитата:
Алиса и Боб ушли медитировать, и через 3 дня выдали по 50 иконок, которые считают более понятными.  
Вполне естественно, что в 20 случаях, они опонятили одну и ту же иконку.  

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

Цитата:
Получается, как только мы переходим от работы стаи одиночек, "каждый над своим независимым кусочком", к совместной работе над общими файлами, тут и выясняется, что git не для этого...  

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

Цитата:
Если вы реально практикуете Git, что вы используете, чтобы упорядочить очередь людей, желающих править один и тот же бинарный файл ?

Я только недавно начал практиковать Git, переведя всё из SVN под Git. Под SVN не было необходимости блокировать бинарные файлы, так что пока это для меня не проблема. Структура БД под PowerDesigner в его репозитории. Подумываю о возможности по-правильному модель PowerDesigner-а (в бинарном или xml виде) под Git положить.

Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 16:55 24-01-2016 | Исправлено: Alexzzy, 17:03 24-01-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Расскажите за git [windows]


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru