Рабочая обстановка:
Ubuntu 10.04,
github.com
1. Установка
$ sudo apt-get install git-core git-gui git-doc
или через центр приложений
2. Генерим ключ и устанавливаем данные для нашего репозитория, чтобы была видна принадлежность коммитов
$ ssh-keygen -t rsa -C "your_email@youremail.com"
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "your_email@youremail.com"
3. Подключаемся по ssh к удаленному репозиторию
$ ssh -T git@github.com
4. Инициализируем git в нашей рабочей директории
$ git init
5. Клонируем удаленный репо в нашу рабочую директорию
$ git clone git@github.com:username/Spoon-Knife.git
Смотрим полное имя удаленного репо origin git@github.com:username/Spoon-Knife.git)
$ git remote -v
Статус
$ git status
6. Основное по работе локально
Отменить локальные изменения
$ git checkout .
Добавить в индекс
$ git add .
Удалить из индекса
$ git reset HEAD^
Сделать коммит-подтверждение
$ git commit -m "comments.."
Обратить коммит (повляется новый коммит, обратить коммит за счет появления нового)
$ git revert HEAD
^
Сбросить коммить на коммитс кэшем
$ git reset --hard b05a808
Что за ключ --amend?
$ git commit --amend -m "Add an author/email comment"
Создать ветку и перейти на нее
$ git checkout -b <namebranch>
Перейти на ветку
$ git checkout <namebranch to switch>
Слить в текущую ветку master-ветку например
$ git merge master
Ключ -а вместо команд add+commit
$ git commit -a
Создать ветку
$ git branch <namebranch>
Переименовать ветку
$ git branch -m new-branch-name old-branch-name
Удалить ветку
$ git branch -d <namebranch> (удалить)
6. Основное по работе с удаленным репо
Посмотрим на удаленные репо
$ git remote -v
Создать удаленную ветвь
git push origin origin:refs/heads/new_branch
Создаем локальную ветку, и закрепляем ее за удаленной:
git checkout --track -b new_branch origin/new_branch
(если вдруг создали, но забыли прикрепить к удаленной, то лезем в конфиг гита и смотрим на примере master'a)
Удалить ветку на удаленном репо
$ git push origin :<old-branch-name>
$ git push --delete <nameofdelete branch>
Показать все ветки, в том числе удаленные
$ git branch -a
Принять получить данные с удаленного репо
$ git fetch <удаленный репо> <удаленная ветвь>
Слить данные с удаленного репо из ветви <pigmalion-test> в текущую
$ git pull origin <pigmalion-test> (pull с удаленный репо)
Тянуть-получить
толкать-отдать
Слить-объеденить
$git pull
$git push
$git merge
7.Вместо git log, применяем алиасы команд
$git hist
Для конфига
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file -p
Спасибо Марине:
http://githowto.com/
p.s
Галкин хвастался, что к ним гуру git'a приезжал из Киева специально, чтобы рассказать, как им правильно пользоваться. Когда накушается парижских лягушек и напьется французских яблок, было бы неплохо услышать его комментарии по использванию git'a.
upd 03-07-2012:
Частый вопрос при разработке на различных ОС связанный с «CRLF» — переносы строк в *nix и win.
Для «чистого» pull'a, который автоматом решит проблему различных переносов строк необходимо:
git config --global core.safecrlf true
Но при этом возникает ошибка, когда мы пытаемся сделать push (add ., commit, commit -a)
Дабы не заморачиваться делаем соответственно:
git config --global core.safecrlf false
Хороший инструмент для с'merge'ивания — kdiff3. Есть в стандартном репозитории ubuntu. (есть в синаптике) Можно запустить через консоль посмотреть как вылядит — kdiff3.
В реальных условиях, когда git просит:
CONFLICT (content): Merge conflict in <your file>
Automatic merge failed; fix conflicts and then commit the result.
вводим
git mergetool
Перед вводом этой строки необходимо в конфиге гита добавить:
[merge]
tool = kdiff3
После набора команды использовать инструмент для мерджа, эта умная зараза может и сама разобраться в коде, в противном случае появятся окна для просмотра и редактирования в очередности несмердженых файлов, которые выдал git.
Комментарии (2)
RSS свернуть / развернутьgit config --global core.autocrlf true
за полгода не увидели ни одной ошибки (вынь + бунта)
2. Галкин не хвастался
3. jenyay.net/Git/Autocrlf
halkin
но Давидище всеравно молодца, 5 баллов
miha
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.