Привет всем... прошу прощения, осваиваю Git и некоторые процессы не укладываются в голове.
Мне интересно, что происходит с файлами на github, когда отправляешь на него изменения - git push?
Я понимаю, что они меняются, т.е. можно зайти в файл рабочей копии на github и увидеть изменение.
Ради эксперимента, создал на локалке два каталога: один с файлами site, которые изменил, а второй использовал как удаленный remote. Потом в первом сделал изменения и отправил всё во второй.
И столкнулся с двумя препятствиями:
1. Видимо по умолчанию нельзя пушить в другой каталог, но это я решил прописав
в настройках каталога remote[receive] denyCurrentBranch = ignore
2. Когда всё же сделал пуш, всё отправилось, всё идентично, НО
при следующих изменениях и пушах в каталоге remote - все коммиты были идентичны, а сами файлы не менялись, (так как это происходит на github).
Сделать их идентичными, получается, только с помощью команды git reset --hard
Собственно, у меня и появился вопрос: как файлы на github автоматически обновляются после git push?
Правильно ли я понимаю, что там автоматически выполняется эта команда git reset --hard после каждого пуша?
DevMan, вот я и не понимаю, что из себя представляет гитхаб, он принял мои файлы и показывает их уже измененными. Каталог remote тоже принял мои файлы, но показывает их не измененными ) если reset не делать...
Senseich, GitHub - просто хостинг для твоих изменений, он просто их хранит.
если ты отправил на него изменения с одного места, то в другом они сами не появятся (можно сделать, что появятся, но это тема другого разговора). надо зайти в это другое место и сказать "гитхаб дай мне что поменялось", для этого и используется команда pull. можно и топорно добиться этого же reset'ом, но при этом похерить все локальные изменения.
DevMan, возможно, я ввел в заблуждение и не правильно сформулировал, т.к. не достаточно поработал ещё с Git ... Создавая каталог remote, я хотел воспроизвести работу github ) Т.е. я напрямую из каталога site пушил в каталог remote, без посредника (github'а).
Senseich, git не хранит файлы, он хранит только изменения в них. и хранит их в своей собственной структуре.
и пушите вы не из каталога в каталог, а из каталога в репозиторий.