Итак, я начал использовать Git несколько дней назад. (Очень поздно вечеринке - не ругайте :)). На самом деле, чтобы начать работать с основными командами, идеями и рабочими процессами. Однако, подмодули действительно заставляют мой мозг ездить. Я пытаюсь внести код в FuelPHPGitHub, и я мог бы использовать некоторые рекомендации и советы.Git Submodule Workflow Advice
Я бегу следующие команды в терминале:
//1: clone the repository from Fuel's github.
git clone git://github.com/fuel/fuel.git
//2: move into the main fuel directory
cd fuel
//3: initilize the submodules (populate .git/config with submodule data)
git submodule init
//4: download the submodules...
git submodule update
//5: move into the core directory (which is a submodule).
cd fuel/core
//6: change branch from (*no branch) to 1.1/develop
git checkout 1.1/develop
//7: open random file in text editor + make some small change (i.e. typo) + save file.
sudo gedit classes/autoloader.php
//8: add this file to the staging area.
git add classes/autoloader.php
//9: commit this file under 1.1develop branch.
git commit -m "im committing a submodule"
//10: push the new commit to MY (not fuel's) github repo (yes i've renamed the repo).
git push [email protected]:jordanarseno/fuel-core.git
//11: changes are reflected on github, looks good.
//12: back way out to fuel again. time to push the submodule commit separately.
cd ../../
//13: add the fuel/core submodule to the staging area.
git add fuel/core
//14: commit the submodule change.
git commit -m "submodule pushed. pushing super now."
//15: push the commit to MY (not fuel's) github repo.
git push [email protected]:jordanarseno/fuel.git
В частности, мои вопросы:
- Является ли это правильный рабочий процесс для работы с подмодулями? Это то, что вы бы сделали?
- Почему git сжимает ветвь
1.1/develop
в подмодуле, но по умолчанию задан по умолчанию*no branch
? Могу ли я изменить это поведение? - Какая часть подмодуля топлива сообщает git, чтобы начать с 1.1/развивать для начала? Там являются другие отрасли (
1.1/master
,1.0/develop
и т.п ..). - Почему мы не можем назвать это днем на шаге 11? Толчок подмодуля работал нормально. Затем я нажимаю супер, потому что руководство tells me it's a good idea. И действительно, направляясь к GitHub и глядя на MY super, совершается фиксация. This commit 845de87 Однако, похоже, это просто ссылка на супер топлива Super, а не MY super. Разве это не ссылка на МОЕ РЕПО, а не их?
- Запуск
cat .git/config
в супер-шоу:
Наряду со всеми подмодулями ...
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/fuel/fuel.git`
Запуск cat .git config
в ядре субмодуля показывает:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/fuel/core.git
было бы целесообразно измените эти url на MY собственный репо на GitHub? В любом случае топливо отрицает толкает. Если я буду выполнять обновление подмодуля, они будут перезаписаны?
Я также спросил об этом по телефону Fuel's Forums, но это скорее общий вопрос, и здесь больше Gitters ... СПАСИБО!
спасибо большое! Отличный пост в другой теме. re: 2; Как найти конкретную фиксацию, на которую ссылается субмодуль? Вы сказали, что «необходимо проверить ветвь в этом репозитории подмодуля» - должна ли она быть * существующей * ветвью? Я могу создать свою собственную и работать оттуда, да? re: 3; запуск 'git branch' в подмодуле возвращает' * никакой ветви' и другие. Откуда эти «другие» - это то, что мне было интересно. re: 4; запуск второго git push должен был выполнить это .. вы говорите, что это не удалось? re: 5; да, такова была идея. fork, затем измените URL-адреса. Будет ли перезаписываться обновление god subodule? –
@JordanArsenault: Я отредактировал свой ответ, чтобы ответить на ваш комментарий: http://stackoverflow.com/posts/9411932/revisions – VonC