На домашнем сервере Centos 7 тестирую git. До этого никогда с ним не работал. Учусь.Установил git:
# yum install gitОт имени пользователя user1 в его локальной директории сделал папку user1.repo
> git init
> touch file.txt
> echo '123' > file.txtОк. Репозиторий готов.
Из под рута (да, я просто тестирую) на этом же компе сделал папку /var/test
# cd /var/test
# git clone /home/user1/user1.repo repo-copyОк. Файл file.txt оказался в папке /var/test/repo-copy
Все ок. Изменяю файл file.txt по рутом. Делаю коммит.
# echo '456' > file.txt
# git add file.txt
# git commit -m 'TEST COMMIT'
# git push origin masterОк, все выходит, git show от рута и от user1 (который типа сам репозиторий держит) показывает, что изменения есть, показывает текст, который я внес в файл.
НО!
Файл file.txt в репозитории (/home/user1/user1.repo) не поменялся, т.е.:
> cat /home/user1/user1.repo123
а не 456...
Я не понимаю, чего ему надо. Я даже от рута в итоге стал делать коммиты, чтобы точно не права доступа мешали. Как это может быть - коммит принят, а файл не поменялся?
Еще раз отмечаю, что git show и от рута и от user1 показывают одни и те же изменения.
Что это может быть?
> Что это может быть?это может быть "чукчаписательство", это диагноз, сочуствую
лечится чтением мановhttp://www.thehorrors.org.uk/snippets/git-local-filesystem-r.../
>> Что это может быть?
> это может быть "чукчаписательство", это диагноз, сочуствую
> лечится чтением манов
> http://www.thehorrors.org.uk/snippets/git-local-filesystem-r.../Зря вы так. Я ж спрашиваю. С Win компа я нормально все закоммичиваю.
Т.е. изменяю файл рутом на centos, git commit/push, потом на винде git pull и все ок, изменения есть. Также и в обратную сторону. Я не понимаю, почему собственно на самом "сервере git" (в папке home/user1/user1.repo) файл file.txt не меняется. Может, он и не должен там меняться?
> в папке home/user1/user1.repoВ мамке попробуй, вендузятник. И, да, вендузятник должен страдать.
...
> Т.е. изменяю файл рутом на centos, git commit/push, потом на винде git
> pull и все ок, изменения есть. Также и в обратную сторону.
> Я не понимаю, почему собственно на самом "сервере git" (в папке
> home/user1/user1.repo) файл file.txt не меняется. Может, он и не должен там
> меняться?порядок десйтвий via http://git-scm.com/book/ru/v1/
на сервере(*nix-like):
- на серваке добавляете пользователя git
- добавляются в /home/git/authotized_keys (0600) ключи с нужных хостов и для нужных пользователей
- крайне рекомендуется создаеть дерево репов, например /mnt/vcs/git и в нем тестовый каталог /mnt/vcs/git/dev/test.git
- заходим в /mnt/vcs/git/dev/test.git делаем комманду(можно от root`a) git bare init .
- перепроверяются и выставляются права: chown -R git:git /mnt/vcs/gitна клиенте:
- самостоятельно via http://git-scm.com/book/ru/v1/
- специфические моменты для win платформы ищутся в поисковикахP.S.:
и крайне рекомендую, сервер с репами загнать на отдельную виртyaлку
>>> Что это может быть?
>> это может быть "чукчаписательство", это диагноз, сочуствую
>> лечится чтением мановОн не умеет читать. Угадал все буквы - не смог прочитать слово. Срочно предложите другое лечение, пациент вапасносте!
>потом на винде git pull и все ок, изменения есть. Также и в обратную сторону.
> Я не понимаю, почему собственно на самом "сервере git" (в папке
> home/user1/user1.repo) файл file.txt не меняется.Очевидно же,что он там не меняется потому, что ты там не делаешь git pull.
И следующие 334 поста мы будем выяснять, как распрямить что-то, чтобы настроить pull.
fail, спасибо. Я немного не то имел ввиду, но угадать было не просто. Согласен.А Led, asavah и Митрофанова хочу спросить: у вас обострение осеннее, что-ли? Или "линуксоиды" такие нервные всегда? Вопрос-то уловили хоть? Я нигде не говорил, что я не делаю push или pull. Я, кажется, наоборот, подчеркнул, что с одного и с другого клиента все нормально идет через "сервер". Все вообще было нормально сразу. Просто я ошибся в том, что считал, что в папке, в котором init делал, (/home/user1/user1.repo) файл file.txt вообще меняется при push-е "с клиентов".
Его вообще можно удалить и ни на что это не влияет.
$ ls -al /home/user1/user1.repo
.
..
file.txt
.gitУдалил файл file.txt.
$ ls -al /home/user1/user1.repo
.
..
.gitникак не влияет на то, что клиенты синхронизируют изменения в файле (или работают с другими файлами).
Загвоздка была в этом. Всего-то делов. А шума-то подняли.
...
> Его вообще можно удалить и ни на что это не влияет.почитайте внимательно про ахитектуру git`a "серверного" репа
пример одного "серверного" репа из виртуалкиuser@deb5:~$ ls -la /mnt/vcs/git/dev/net/xfer.git
total 40
drwxr-xr-x 7 git git 4096 Apr 24 2015 .
drwxr-xr-x 10 git git 4096 Dec 19 2014 ..
-rw-r--r-- 1 git git 23 Apr 24 2015 HEAD
drwxr-xr-x 2 git git 4096 Apr 24 2015 branches
-rw-r--r-- 1 git git 66 Apr 24 2015 config
-rw-r--r-- 1 git git 58 Apr 24 2015 description
drwxr-xr-x 2 git git 4096 Apr 24 2015 hooks
drwxr-xr-x 2 git git 4096 Apr 24 2015 info
drwxr-xr-x 260 git git 4096 Oct 14 10:49 objects
drwxr-xr-x 4 git git 4096 Apr 24 2015 refs
> $ ls -al /home/user1/user1.repo
> .
> ..
> file.txt
> .git
> Загвоздка была в этом. Всего-то делов. А шума-то подняли.просто не уловили суть про серверную часть
P.S.:
помнится переводил часть своих локальных репов с svn на git,
идеология конечно сильно разная, но в итоге все пучком,а svn остaлcя для "бинapных" данных - в общем неплохой симбиоз получился
> fail, спасибо. Я немного не то имел ввиду, но угадать было не
> просто. Согласен.
> А Led, asavah и Митрофанова хочу спросить: у вас обострение осеннее, что-ли?
> Или "линуксоиды" такие нервные всегда? Вопрос-то уловили хоть? Я нигде неМы не нервные, это Вы нервничаете почему-то.
> через "сервер". Все вообще было нормально сразу. Просто я ошибся в
> том, что считал, что в папке, в котором init делал, (/home/user1/user1.repo)
> файл file.txt вообще меняется при push-е "с клиентов".Я Вам больше скажу: Вы также ошибаетесь в том, что push - это pull "наоборот".
push - это fetch "наоборот", а pull это вообще fetch+merge, внизапно.
> Его вообще можно удалить и ни на что это не влияет.
> Удалил файл file.txt.
> никак не влияет на то, что клиенты синхронизируют изменения в файле (или
> работают с другими файлами).Почитайте про --bare/--mirror. В man git-clone, например. Попробуйте. Выводы?
> Загвоздка была в этом. Всего-то делов. А шума-то подняли.
man git<TAB><TAB>
прочитать на ночь 5 раз.
> Я Вам больше скажу: Вы также ошибаетесь в том, что push -
> это pull "наоборот".
>> Загвоздка была в этом. Всего-то делов. А шума-то подняли.
> man git<TAB><TAB>
> прочитать на ночь 5 раз.Ещё зарядка для: в gitglossary(7) проштудировать `bare repository`, `index` и ` working tree`. Непонятные слова поискать там же или скрпосить у взрослых.
...
> Почитайте про --bare/--mirror. В man git-clone, например. Попробуйте. Выводы?
>> Загвоздка была в этом. Всего-то делов. А шума-то подняли.
> man git<TAB><TAB>
> прочитать на ночь 5 раз.имо даже не столько почитать, сколько "руками", т.ск. уловить концепцию..
Базовое упражнение:
3 подхода по 5 - по базовому созданию и клонированию репов на "серваке" и клиeнте100 кaпeль пoтa на тренировке дешевле 1 капли крови в "пpoдaкте" :))
P.S.:
вышеперечисленное проверено на личной шкуре, жертв и разрушений нет..
Андрей, почему вы решили, что я решил что-то про противопоставление pull/push? Я такое не говорил. Я, конечно, мало знаком в git, но я понял, в чем ошибался, вопрос решил. И спрашивать "что такое bare" не готов. Думаю, что вы не готовы отвечать.Вчера вопрос про git возник именно по тому, что тренируюсь. И именно 5 раз тестирую и только потом думаю, надо ли в продакшн.
Усе, я пошел играть в хоккей. Все пока. Спасибо за дискуссию.
> что я решил что-то про противопоставление pull/push?
>Я, конечно, мало знаком в git, но я понял,
>И спрашивать "что такое bare" не готов.Просто pull/push и bare -- это именно то, про что ты там наверху мямлил "эта. тут у у меня файл, а я его, а он мне не фейл, а на венде у меня того, всё совсем" и пр.
Я всего-навсего сказал, что чтобы выражаться яснее, нужно освоить язык предметной области. Чтоб не выглядеть мямлей инедалёким человеком, надо тренировать голову. Первый дан по git-у - init,add,commit,checkout. Второй дан - pull,push,merge. Третий - ....
>Усе, я пошел играть в хоккей.
В тетрисе и CS-е тоже можно голову не напрягать. До синего пояся -- на одних пальцах.
"Мямлить", "недалекий" - ты к себе примеряй. Хам ты просто. Можешь построчно перечитать мой изначальный вопрос. Я описал суть происходящего. Потом дополнил и написал, где ошибся. Твои познания в Linux сомнению не подвергаю! О, нет! Но попробуй накануне Windows - жизнь не так плоха, чтобы из-за нее страдать ;)И да, отрывайся от компа. Хотя бы иногда. Тогда хоккей не будет тебя напрягать, а то тетрис и CS все же пора уже прекращать пользовать. Давление внутричерепное повысишь. Еще агрессивнее станешь. Хотя и так уж вроде...