URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96363
[ Назад ]

Исходное сообщение
"Git делает коммит, но файл не обновляется"

Отправлено billybons2006 , 09-Ноя-15 23:19 
На домашнем сервере 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.repo

123

а не 456...

Я не понимаю, чего ему надо. Я даже от рута в итоге стал делать коммиты, чтобы точно не права доступа мешали. Как это может быть - коммит принят, а файл не поменялся?

Еще раз отмечаю, что git show и от рута и от user1 показывают одни и те же изменения.

Что это может быть?


Содержание

Сообщения в этом обсуждении
"Git делает коммит, но файл не обновляется"
Отправлено asavah , 09-Ноя-15 23:30 
> Что это может быть?

это может быть "чукчаписательство", это диагноз, сочуствую
лечится чтением манов

http://www.thehorrors.org.uk/snippets/git-local-filesystem-r.../


"Git делает коммит, но файл не обновляется"
Отправлено billybons2006 , 10-Ноя-15 00:52 
>> Что это может быть?
> это может быть "чукчаписательство", это диагноз, сочуствую
> лечится чтением манов
> http://www.thehorrors.org.uk/snippets/git-local-filesystem-r.../

Зря вы так. Я ж спрашиваю. С Win компа я нормально все закоммичиваю.

Т.е. изменяю файл рутом на centos, git commit/push, потом на винде git pull и все ок, изменения есть. Также и в обратную сторону. Я не понимаю, почему собственно на самом "сервере git" (в папке home/user1/user1.repo) файл file.txt не меняется. Может, он и не должен там меняться?


"Git делает коммит, но файл не обновляется"
Отправлено Led , 10-Ноя-15 01:16 
> в папке home/user1/user1.repo

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


"Git делает коммит, но файл не обновляется"
Отправлено fail , 10-Ноя-15 08:57 
...
> Т.е. изменяю файл рутом на 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 делает коммит, но файл не обновляется"
Отправлено Andrey Mitrofanov , 10-Ноя-15 10:13 
>>> Что это может быть?
>> это может быть "чукчаписательство", это диагноз, сочуствую
>> лечится чтением манов

Он не умеет читать. Угадал все буквы - не смог прочитать слово. Срочно предложите другое лечение, пациент вапасносте!

>потом на винде git pull и все ок, изменения есть. Также и в обратную сторону.
> Я не понимаю, почему собственно на самом "сервере git" (в папке
> home/user1/user1.repo) файл file.txt не меняется.

Очевидно же,что он там не меняется потому, что ты там не делаешь git pull.

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


"Git делает коммит, но файл не обновляется"
Отправлено billybons2006 , 10-Ноя-15 19:10 
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 делает коммит, но файл не обновляется"
Отправлено fail , 10-Ноя-15 20:16 
...
> Его вообще можно удалить и ни на что это не влияет.

почитайте внимательно про ахитектуру 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ных" данных - в общем неплохой симбиоз получился


"Git делает коммит, но файл не обновляется"
Отправлено Andrey Mitrofanov , 10-Ноя-15 20:19 
> 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 раз.


"Git делает коммит, но файл не обновляется"
Отправлено Andrey Mitrofanov , 10-Ноя-15 20:25 
> Я Вам больше скажу: Вы также ошибаетесь в том, что push -
> это pull "наоборот".
>> Загвоздка была в этом. Всего-то делов. А шума-то подняли.
> man git<TAB><TAB>
> прочитать на ночь 5 раз.

Ещё зарядка для: в gitglossary(7) проштудировать `bare repository`, `index` и ` working tree`. Непонятные слова поискать там же или скрпосить у взрослых.


"Git делает коммит, но файл не обновляется"
Отправлено fail , 10-Ноя-15 20:34 
...
> Почитайте про --bare/--mirror. В man git-clone, например. Попробуйте. Выводы?
>> Загвоздка была в этом. Всего-то делов. А шума-то подняли.
> man git<TAB><TAB>
> прочитать на ночь 5 раз.

имо даже не столько почитать, сколько "руками", т.ск. уловить концепцию..

Базовое упражнение:
3 подхода по 5 - по базовому созданию и клонированию репов на "серваке" и клиeнте

100 кaпeль пoтa на тренировке дешевле 1 капли крови в "пpoдaкте" :))

P.S.:
вышеперечисленное проверено на личной шкуре, жертв и разрушений нет..


"Git делает коммит, но файл не обновляется"
Отправлено billybons2006 , 10-Ноя-15 20:43 
Андрей, почему вы решили, что я решил что-то про противопоставление pull/push? Я такое не говорил. Я, конечно, мало знаком в git, но я понял, в чем ошибался, вопрос решил. И спрашивать "что такое bare" не готов. Думаю, что вы не готовы отвечать.

Вчера вопрос про git возник именно по тому, что тренируюсь. И именно 5 раз тестирую и только потом думаю, надо ли в продакшн.

Усе, я пошел играть в хоккей. Все пока. Спасибо за дискуссию.


"Git делает коммит, но файл не обновляется"
Отправлено Andrey Mitrofanov , 11-Ноя-15 10:57 
> что я решил что-то про противопоставление pull/push?
>Я, конечно, мало знаком в git, но я понял,
>И спрашивать "что такое bare" не готов.

Просто pull/push и bare -- это   именно   то, про что ты там наверху мямлил "эта. тут у у меня файл, а я его, а он мне не фейл, а на венде у меня того, всё совсем" и пр.

Я всего-навсего сказал, что чтобы выражаться яснее, нужно освоить язык предметной области. Чтоб не выглядеть мямлей инедалёким человеком, надо тренировать голову. Первый дан по git-у - init,add,commit,checkout. Второй дан - pull,push,merge. Третий - ....

>Усе, я пошел играть в хоккей.

В тетрисе и CS-е тоже можно голову не напрягать. До синего пояся -- на одних пальцах.


"Git делает коммит, но файл не обновляется"
Отправлено billybons2006 , 12-Ноя-15 03:27 
"Мямлить", "недалекий" - ты к себе примеряй. Хам ты просто. Можешь построчно перечитать мой изначальный вопрос. Я описал суть происходящего. Потом дополнил и написал, где ошибся. Твои познания в Linux сомнению не подвергаю! О, нет! Но попробуй накануне Windows - жизнь не так плоха, чтобы из-за нее страдать ;)

И да, отрывайся от компа. Хотя бы иногда. Тогда хоккей не будет тебя напрягать, а то тетрис и CS все же пора уже прекращать пользовать. Давление внутричерепное повысишь. Еще агрессивнее станешь. Хотя и так уж вроде...