Документация Calculate Linux

Вид материалаДокументы

Содержание


Серверные команды репозитория
Правка коммитов в общем случае
Правка коммитов вручную, без git-rebase
Подобный материал:
1   ...   128   129   130   131   132   133   134   135   136

Серверные команды репозитория


; git update-server-info : Команда создает вспомогательные файлы для dumb сервера в $GIT_DIR/info и $GIT_OBJECT_DIRECTORY/info каталогах, чтобы помочь клиентам узнать, какие ссылки и пакеты есть на сервере.

; git count-objects : Проверка, сколько объектов будет потеряно и объём освобождаемого места при перепаковке репозитория.
; git gc : Переупаковка локального репозитория.

Рецепты


Создание пустого репозитория на сервере

repo="repo.git"

mkdir $repo

cd $repo

git init --bare

chown git. -R ./

cd ../

Импорт svn репозитория на Git сервер

repo="repo.svn"

svnserver="late.ru"

git svn clone -s $svnserver/$repo $repo

mv $repo/.git/refs/remotes/tags $repo/.git/refs/tags

rm -rf $repo/.git/refs/remotes

rm -rf $repo/.git/svn

mv $repo/.git $repo.git

rm -rf $repo

cd $repo.git

chown git. -R ./

cd ../


Правка последнего коммита

Для правки ''последнего'' коммита достаточно git commit --amend, который перезакоммитит при выполнении ряда разумных условий добавленные после коммита изменения «заодно».

Правка коммитов в общем случае


В общем случае для редактирования коммитов удобно применять git rebase --interactive. Это выглядит примерно так:

$ git rebase -i коммит

[ Нам показывают в редакторе список коммитов. Перед тем, который хотим исправить, меняем pick на edit.

Сохраняем и выходим. ]

You can amend the commit now, with


git commit --amend


Once you are satisfied with your changes, run


git rebase --continue


[ Теперь текущим стал тот коммит, который мы хотим исправить. ]

$ vim нужный/файл # исправляем всё, что хотим

$ git commit --am нужный/файл

$ git rebase --continue

То же самое можно сделать и вручную.

Правка коммитов вручную, без git-rebase


Иногда не хочется делать новые коммиты, которые являются мелкими исправлениями к предыдущим коммитам. Поэтому я предлагаю такое правило для использования git push --force: нельзя заменять коммиты дальше последнего публичного тага, или же дальше коммита, отправленного на сборку (без специальных усилий изменение такого коммита приведёт к тому, что следующая сборка будет отвергнута).

Допустим, что эти условия выполнены, а исправления мелких/глупых ошибок не хочется оформлять отдельно. Для примера объясню, как поправить пред-предпоследний коммит.

Сначала нужно сохранить текущую работу во временный бранч:

$ git branch save


Потом нужно откатить работу до пред-предпоследнего коммита:

$ git reset --hard HEAD


Теперь нужно поправить пред-предпоследний коммит, который стал текущим:

$ vim ...

$ git commit -a --am


Затем поверх пред-предпоследнего коммита нужно накатить предпоследний и
последний коммиты из сохраненного бранча:

$ git cherry-pick -r save

$ git cherry-pick -r save


Осталось только удалить временный бранч:

$ git branch -D save


После этого уже можно сделать

$ git push --force git.alt


3. Руководство по оформлению программ на Python

Author: Guido van Rossum
Оригинальная статья на английском: ссылка скрыта Python Style Guide
Перевод выполнен компанией «Калкулэйт».