>>>Дело в том, что плохо знаю git, надеюсь знатоки подскажут что делать.
>>
>>Сделать над собой усилие?...
>
>можно, но в каком направлении курить документацию? Если можно - конкретно необходимые
>команды git'a (их там сотни!)Пункт 0. Забыть про "сотни команд". Выдохнуть-расслабиться. Уяснить, что все изменения делаются в одной локальной директории (пока нет или не используется право на запись в/на др.дир./удалённый сервер). Файлы - просто файлы, всё в ./.git/ - :) гитово.
Сделать... :)) на одном компьютере один раз (_свои_ координаты, само собой, вписать).
git config --global user.email "send@letters2.me"
git config --global user.name "Ivanoff Ivann"
Пункт 1. Чтобы "сесть и поехать" (со своего _пустого_ репо), нужны _ровно_
git init
git status
git diff
git add <file>...
git commit -a
git log
_Ровно_ в таком виде и только эти команды. Плюс проект, который и. Cвой (=пока тлько локальные репо). Небольшой(~сложность - только с git). Очень помогает, чтобы _реальный_ (=мотивация). Возможно, не один. Или учебный - покрутил, выбросил, начал другой. ....
Пункт 1б. The W.F.
Научиться _"видеть"_ изменения по мере их появления в файлах и "записи в историю" (=коммита в репо).
Уяснить простейший локальный "workflow": LOOP[ change -> status -> commit ]. А-ля:
while(on_the_project()){
make_changes() if wanna_change();
status/diff/log if wanna_see_status() || wanna_commit() && !seeing_status();
commit if wanna_commit() && seeing_status() || just_gotta_commit()
}
Пункт 1а. _По_желанию_, по мере необходимости:
- [commit/log] перелистать ключи/параметры для;
- [commit] $EDITOR настроить;
- [commit] изучить и пользовать -m "Commit message.".
Пункт 1.[Л].
1)Вернуться %) к п.0;
2)http:/openforum/vsluhforumID9/7642.html#3
3)м.б.даже #4. (**)Re:linus google video: Если радостный и нарочитый "маркетинг" git-а Линусом вызывает не улыбку, но неприятие, отложить видео и/или пересмотреть своё отношение к нему (видео, не Линусу! $) ).
[[Далее - то, до чего _я_ дошёл, но не научился и не возьмусь учить. Кратенько...]]
Пункт 2. Индекс vs working dir. vs репо. Ветви.
[=Каждая вторая лекция, статья, (?)книга про git, начиная с linus' git google talk -- об этом. Детали про объекты и хэш-суммы можно "смело пропускать, но иметь в виду". :)) ]
git branch [...]
git checkout -f master
-2.0. "Открыть" для себя & понять роли index&W.D.&repo в работе git в _своём_ workflow (и/или wf. из п.1б).
-2.1. Уяснить, зачем -f, когда он нужен и пр. -- checkout vs "чистая" working dir.
--2.5. git merge, _не_линейная история.
-2a. (*при желании) git stash; ?topgit (внешний инструмент)
-2б. git commit --amend
vs git reset (ОСТОРОЖНО! м.б.потеряны записи "в истории")
Пункт 3. Репо vs репо.
-3а. Локальный vs второй локальный.
git clone dir1/ dir2/
git push
git pull --ff origin master
-3б. Локальный vs удалённый.
git clone proto:/remote/repo [dir/]
-3ц. ...при желании?..
git fetch
git pull
git merge
git push
. . . . .
-4ф. git gc
. . . . .
Пункт A.1. [Параллельно с/переключаясь с/на - п.1+.] "Крутить головой."
Кто как использует. Какие проекты. Кто для чего. Кто что пишет про.
-А.2. Наверное, можно и вопросы позадавать. ;-)
. . . . . . . . . . . . . . . . . . . . . . . . .
> - про git-clone, git-pull, git-checkout в курсе.
Команды - не главное. Как выясняется, есть некоторые :) затруднения с тем, что... эээ... между %) ними.
>А вот какой командой вытащить мой тестовый бранч в отдельный
>каталог, который я потом желаю закоммитить в svn?
Ну, например -
GIT_DIR= ../path/to/.git/ checkout -f test-branch
, или
git archive --format=tar test-branch | ( cd ../some/dir; tar x )
, или... наверное, ещё какие-то способы есть...