четверг, 11 апреля 2013 г.

GIT Cheat


Основные команды

GIT INIT (CREATE в SVN) - Создать хранилище файлов в Git

git init


GIT CLONE (CHECKOUT в SVN) - Выгрузка файлов из хранилища Git на локальный компьютер

git clone ssh://user@domain.com/repo.git


GIT STATUS - Посмотреть статус внесенных изменений

git status


GIT ADD . - Пометка файлов и папок для будущего добавления в хранилище в Git

git add .

Другой пример

git add -p my_file.txt


GIT RM (DELETE в SVN) - Пометка файлов и папок для будущего удаления из хранилища SVN

git rm file_or_directory_inside_my_project_folder


GIT DIFF - Посмотреть (сравнить) внесенные в проект изменения

Показать различия между текущей рабочей директорией и той же директорией в хранилище

git diff


GIT COMMIT -A (COMMIT в SVN) - Отправка (добавление) внесенных изменений из локальной папки в хранилище Git

git commit -a

Другой пример

git commit


GIT PULL (UPDATE в SVN) - Выгрузка последней версии файлов из хранилища Git с целью обновления локальных файлов и их замены на файлы из хранилища

git pull

Другой пример

git checkout rev
git checkout prevbranch


GIT LOG - Посмотреть кто еще переносил свои изменения в хранилище GIT

git log

Другой пример

git log -p my_file.txt


GIT TAG (COPY в SVN) - Тэгирование (копирование) и создание отдельных версий проекта в хранилище Git

Тэги создают отдельные копии проекта для будущих изменений.
В директори tags создается виртуальная копия проекта.

git tag -a my_tag_name


===============================================================

Дополнительные команды

GIT CHECKOUT (REVERT в SVN) - Отменить внесенные изменения
git checkout


===============================================================

GIT COMMANDS SUMMARY

0. BASICS

master - default development branch
origin - default upstream repository

HEAD - current branch
HEAD^ - parent of HEAD
HEAD~4 - the great-great grandparent of HEAD


1. CREATE

FROM EXISTING DATA

cd ~/projects/myproject
git init
git add .

FROM EXISTING REPOSITORY

git clone ~/existing/repository ~/new/repository

git clone git://host.org/project.git

git clone ssh://you@host.org/project.git


2. BROWSE

SHOW FILES CHANGED IN LOCAL WORKING DIRECTORY

git status

SHOW CHANGES TO TRACKED FILES

git diff

SHOW WHAT CHANGES BETWEEN FILE 1 AND FILE 2

git diff file1.txt file2.txt

SHOW HISTORY OF CHANGES

git log

SHOW HISTORY OF CHANGES FOR FILE WITH DIFFS

git log -p file.txt /some/directory/

SHOW WHO CHANGED WHAT AND WHEN IN A FILE

git blame file.txt

SHOW COMMIT IDENTIFIED BY ID

git show 1467

SHOW FILE FROM A SPECIFIC COMMIT

git show 1467:file.txt

SHOW ALL LOCAL BRANCHES

git branch


3. CHANGE


4. REVERT

RETURN TO THE LAST COMMITTED STATE

git reset --hard

REVERT THE LAST COMMIT

git revert HEAD

REVERT THE SPECIFIC COMMIT

git revert 1467

FIX THE LAST COMMIT

git commit -a --amend

CHECKOUT THE VERSION OF A FILE

git checkout 1467 file.txt


5. UPDATE

FETCH LATEST CHANGES FROM ORIGIN UPSTREAM REPOSITORY

git fetch

PULL LATEST CHANGES FROM ORIGIN UPSTREAM REPOSITORY

git pull

APPLY A PATCH THAT SOMEONE SENT TO YOU

git am -3 patch.mbox


6. BRANCH

SWITCH TO THE BRANCH

git checkout 1467

MERGE BRANCH 1 INTO BRANCH 2

git checkout branch2
git merge branch1

CREATE BRANCH NAMED SOMEBRANCH BASED ON HEAD

git branch somebranch

CREATE BRANCH NEWBRANCH BASED ON BRANCH OTHERBRANCH AND SWITCH TO IT

git checkout -b newbranch otherbranch

DELETE BRANCH

git branch -d somebranch


7. PUBLISH


COMMIT ALL YOUR LOCAL CHANGES

git commit -a

PREPARE A PATCH FOR OTHER DEVELOPERS

git format-patch origin

PUSH CHANGES TO ORIGIN

git push

MARK A VERSIION / MILESTONE

git tag v1.0


RESOLVE MERGE CONFLICTS

TO VIEW MERGE CONFLICTS

git diff
git diff --base file.txt
git diff --ours file.txt
git diff --thirs file.txt

TO DISCARD CONFLICT PATCH

git reset --hard
git rebase --skip

AFTER RESOLVING CONFLICTS, MERGE WITH

git add conflict_file.txt
git rebase --continue

Комментариев нет:

Отправить комментарий