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

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

Модерирует : gyra, Maz

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

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

unreal666



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

 



Git (произносится «гит») — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 23:47 02-04-2013 | Исправлено: Xant1k, 00:33 03-01-2021
SokolSG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
unreal666
Git-номер_версии-previewдата.exe - это сам Git c shell скомпилиный и готовый к работе(все что необходимо для работы с git репозиториями).
msysGit-fullinstall-номер_версии-previewдата.exe - здесь идет среда разработки для компиляции git для Windows (сам Git идет в исходниках и после инсталляции msysGit он собирается у вас на PC)

Всего записей: 195 | Зарегистр. 11-06-2006 | Отправлено: 08:59 03-04-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В Git GUI есть такая фигня: тыкаешь правой кнопкой на коммите => Установить ветвь <имя_ветви> на это состояние => Тип операции перехода: Жесткий.
 
Т.е. сделать рабочий каталог таким как надо. (обычно надо на самый последний коммит)
 
Как такое делать из командной строки автоматом для самого последнего коммита?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 06:22 31-05-2013
KlimKlim



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Никогда не пользовался никакими GUI, а что с ветвью происходит после таких манипуляций?
 
Судя по исходникам gitk:  
https://github.com/git/git/blob/master/gitk-git/po/ru.po#L710
https://github.com/git/git/blob/master/gitk-git/po/ru.po#L847
это  

Код:
git add .
git reset --hard HEAD

Почти что уверен, что это именно ресет хард.

Всего записей: 383 | Зарегистр. 23-03-2006 | Отправлено: 00:34 01-06-2013 | Исправлено: KlimKlim, 01:04 01-06-2013
unreal666



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

Цитата:
что с ветвью происходит после таких манипуляций?

просто устанавливается на последний коммит.

Цитата:
Почти что уверен, что это именно ресет хард.

"git reset --hard HEAD" не прокатил, но прокатило "git reset --hard origin/master".
сенкс.

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 05:51 01-06-2013
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. В проге GitHub есть две кнопки:
- revert commit ( create a new commit that reverts the changes  in this commit )
- roll back this commit ( roll back this commit leaving all changes made in this and later commits in your working directory )
 
Чем из них надо воспользоваться, чтобы отменить какой-либо коммит?
 
2. Вопрос собственно по гитхабу.
Есть клон проекта и в нем мной сделаны коммиты.
В оригинале после клонирования тоже появлись коммиты.
Можно ли как-то новые коммиты из оригинала накатить на мой клон?
 
3. Есть ли где-то на гитхабе что-то типа to-do ?

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 18:45 26-07-2013 | Исправлено: unreal666, 18:47 26-07-2013
SokolSG



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

Цитата:
- revert commit ( create a new commit that reverts the changes  in this commit )  

сделает новый коммит в ветке с зеркальным изменением содержимого указанного комита.

Код:
git  revert <commit>


Цитата:
 - roll back this commit ( roll back this commit leaving all changes made in this and later commits in your working directory )

сделает сброс индекса ветки и помещения изменений в рабочий каталог без сохранения истории комитов

Код:
git  reset <commit>


Цитата:
Чем из них надо воспользоваться, чтобы отменить какой-либо коммит?

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

Цитата:
Можно ли как-то новые коммиты из оригинала накатить на мой клон?

можно, в локальной копии добавляешь удаленный репозиторий
 
Код:
git  remote add <имя> <url оригинала с которого делал клона>  

получаешь все измениия с удаленных репозиториев
 
Код:
 git fetch --all  

переключаешься на ветку клона проекта со своими изменениями
 
Код:
 git checkout <имя клона с изменниями>

добавляешь изменения из удаленного оригинального репозитория
 
Код:
 git rebase <имя>/<имя бранча>

отправляешь изменения в свой удаленный репозиторий (если необходимо)
 
Код:
 git push  
.
 

Всего записей: 195 | Зарегистр. 11-06-2006 | Отправлено: 16:57 03-09-2013 | Исправлено: SokolSG, 16:58 03-09-2013
GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ подскажите
 
нужно сделать локальный сервер с  git для команды разработчиков.
требования такие:
 
- репозитарии должен создавать админ через веб морду
- доступ к репам тоже выставляет админ через туже веб морду
- доступ к репам через Active Directory.
 
на базе чегор это можно реализовать чтоб не очень много лишнего было ?
redmine все хвалят, но я так понимаю там слишком все сложно и много лишнего будет.
 
мне же нужно чтобы девелоперам отдавался только урл репозитория и они могли с ним работать через свои git-клиенты авторизуясь в AD.
 
я так понимаю git может работать по своему протоколу git и по http ?
для протокола git нужны ssh ключи - и как их связать с доменным акком - пока не представляю..
а вот по http наверно все может получится.
есть какието решения ?

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 13:44 12-09-2013 | Исправлено: GaDiNa, 13:46 12-09-2013
SokolSG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GaDiNa
 
Не очень тяжелые и легкие в настройке: scm-manager или GitStack или Bonobo Git Server последний как и первый open-source

Цитата:
я так понимаю git может работать по своему протоколу git и по http ?

Git-на-сервере
Можно подружить git сервер с IIS c HTTPS а затем связать каждую папку проекта с пользователями AD.
Можно просто использовать общую папку как Git репозиторий внутри Вашего домена и управлять ею через пользователей домена.

Код:
git clone \\server\repository


Всего записей: 195 | Зарегистр. 11-06-2006 | Отправлено: 10:04 13-09-2013 | Исправлено: SokolSG, 10:31 13-09-2013
GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SokolSG
спасибо.
изучая ваши ссылки, пришло некое дополнительное понимание и уточнение моих требований.
 
так как команд разработчиков несколько и они могут добавляться, нужно сделать так, что бы доступ к определенным репозитариям был только у нужных команд.
доступ нужно раздавать на основе групп.
то есть одно виндовой группе есть rw доступ к одному репозиторию, другой - к другому, и тд.
доступ скорее всего придется раздавать по SSH - я так понял это единственный сетевой протокол позволяющий записывать В удаленный репозиторий.
протоколы git и http - только для чтения.
 
учитывая специфику работы git, становится понятно, что человек имеющий ssh ключ и получивший доступ к серверу может создать на нем свой репозиторий.
так каким же образом можно обеспечить чтобы доступ был только на открытый репозиторий ?

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 18:28 20-09-2013
SokolSG



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

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

1. Используя общую папку на сетевом диске и создав группу для доступа к этой папке можно решить вашу задачу. Решение не очень красивое но рабочее. Дополнительно о плюсах и минусах написано в главе Pro Git ссылку на которую я вам дал "Локальный протокол"
2. Более интересное решение которое покрывает Вашу задачу это использование  scm-manager - решает все поставленные Вами задачи(Создание группу, отдельные репозитории для групп, антификацию через AD, возможность записи и чтения, web интерфейс) плюс есть еще плагины которые расширяют функционал который в дальнейшем Вам я думаю понадобится.

Цитата:
доступ скорее всего придется раздавать по SSH - я так понял это единственный сетевой протокол позволяющий записывать В удаленный репозиторий.  
 протоколы git и http - только для чтения.

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

Цитата:
учитывая специфику работы git, становится понятно, что человек имеющий ssh ключ и получивший доступ к серверу может создать на нем свой репозиторий.  
 так каким же образом можно обеспечить чтобы доступ был только на открытый репозиторий ?

Здесь Вы тоже опять заблуждаетесь или еще не разобрались.
Иметь ssh ключ может любой пользователь.
Получить доступ может только пользователь чей ключ знает сервер.
Что сможет делать на сервере все зависит от прав какие ему будут доступны на сервере.
 
ЗЫ.
Могу еще предложить Вам использовать Gerrit, он тоже подойдет но он сложней чем предыдущие предлагаемые мной решения.

Всего записей: 195 | Зарегистр. 11-06-2006 | Отправлено: 09:44 23-09-2013 | Исправлено: SokolSG, 09:51 23-09-2013
GaDiNa



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

Цитата:
Gerrit

 
это code review система - не совсем то, что мне нужно
 
проверял gitlab и понял, что не подойдет.
в нем не получится авторизовать по группам из LDAP.  
такое возможно только в Enterprise версии.  
логинится под доменным акком - пожалуста.  
но выдать права на доменную группу - только за деньги.  
 
поэтому продолжаю искать решение.
 
нагуглил инфу про связку git + gitolite
последний как раз умеет авторизовать по группам из LDAP  
но пока не пойму как там можно-нужно создавать репозитории - из веба вроде не получится, а хотелось бы.

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 13:56 16-10-2013
GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
git + gitolite работает..
но доступен только ssh протокол для записи.
для clone можно еще http(s) прикрутить..
и все бы ничего, но нету никакой веб морды для управления созданием репозиториев и раздачей прав.. все надо из консоли делать.
эх. gitlab был идеальной штукой, пока не выяснилось что по группам из AD не работает
 
ps: чтото здесь обсуждение заглохло, не подскажете - где есть более активное общение на этот счет ? может там помогут или подскажут чтото дельное.

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 20:12 21-10-2013
maratsh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
господа, подскажите, как можно найти подстроку во всей истории комитов?
понятно, есть git log -p --grep
но он почему-то странно работает.
например:
git log -p --grep=and
не находит ни одной строки, но точно известно, даже видно по полному выводу лога, что есть такие логи.
даже просто сделав полный вывод, и прям из лога скопировав строку не находит ни чего, даже с использованием разных комбинаций -i , -F
некоторые слова находит, но так мало, что не понятно, что надо сделать, чтобы он нашел все логи с подстрокой.
 
 
Добавлено:
блин, вместо  
git log --grep  
лучше использовать
git log -G
отлично принимает регулярные выражения, все что надо находит

Всего записей: 1 | Зарегистр. 31-01-2006 | Отправлено: 12:41 10-10-2014
IHmG

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь встречал обзор WEB-интерфейсов для работы с GIT? Нашел одну табличку но пока для меня это фразы на иностранном языке а хотелось бы что-нибудь для чайников...

Всего записей: 248 | Зарегистр. 07-06-2006 | Отправлено: 08:11 15-04-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IHmG, вам только веб-интерфейс для Гита или может быть сразу систему управления проектами типа «Калифеи»?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:40 16-04-2015
mark74

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот тоже решил освоить GIT
Есть реальная задача, как на зло, не очень стандартная для GIT.
Проект - скрипт архивации. Командный файл  т.е. BAT-файл под Windows.
Соответственно родная кодировка проекта CP866.
 
По идее, должны быть заданы следующие параметры:
Код:
i18n.logoutputencoding = cp866
i18n.commitencoding = cp866
 

NB
Код:
git config --global core.pager type
git --no-pager log -p -1
 

 
версия Git-2.9.3.2-32-bit
git запускается через cmd или git-cmd результат одинаковый: с кракозябрами где-нибудь то там то сям в зависимости от настроек.
Пока нормальное решение не найдено.

Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 06:28 24-09-2016 | Исправлено: mark74, 06:36 24-09-2016
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mark74> не очень стандартная для GIT.
 
По-моему, «Гиту» глубоко наплевать на все эти маргинальные кодировки, ему совершенно не к чему знать, в какой из них тот или иной файл.  Чего вы вообще пытаетесь от него добиться?


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 03:58 25-09-2016
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
какие переменные и во что надо устанавливать в gitconfig'е, чтобы не было преобразований концов строк ни при добавлении в репо, ни при вытаскивании из него? Т.е. все хранилось как есть.
 
В C:\ProgramData\Git\config стоит добавлено такое

Код:
 
[core]
    autocrlf = input
 

но при добавлении в репо git пишет такое

Код:
warning: CRLF will be replaced by LF in build_all.dsp.
The file will have its original line endings in your working directory.

 
Добавлено:
P.S.
Посмотрел в Process Monitor, откуда git читает конфиг:

Цитата:
папка_repo\.git\config
C:\ProgramData\Git\config
папка_проги_git_for_windows\mingw32\etc\gitconfig
C:\Users\мой_логин\.config\git\config
C:\Users\мой_логин\.gitconfig

Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 02:33 10-10-2016
mark74

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на данном этапе (освоения GIT) понятно, что есть две проблемы с кодировкой:

  1. ввод и отображение сообщения к загрузке (commit message)
  2. отображение изменений и вывод файлов из хранилища

команда запущенная из командной строки винды
git cat-file -p <hash>
выведет кракозябры если текст хранится не в UTF-8, а хранилище настроено стандартно.
 

Всего записей: 480 | Зарегистр. 25-01-2009 | Отправлено: 10:55 10-10-2016 | Исправлено: mark74, 10:56 10-10-2016
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Git


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru