������� �������� ���� ��� ������ � git � ��������������������� ��������� (git)
�������� �����: git, (����� ������� ���������)
From: Logus
Date: Mon, 6 Nov 2010 17:02:14 +0000 (UTC)
Subject: ������� �������� ���� ��� ������ � git � ��������������������� ���������
��������: http://evasive.ru/articles/git_kung-fu.html
������ ������������� ������������� ���������� ��������� � ������
��������� git ���: add, pull, push, commit.
� ������ ��������������������� ������ � ������������ ��������
���������� ����� ��������: ������� �� git pull, ������ ���, ��������,
����� ���������� ��� � ����� �����������, � ���-�� ��� � �������: ����
���, � �� push -- ��� ��� �ӣ ����������. � ����� ���������� ������ git
pull, ���������� ����������� �������������� merge � � ���� ���������
merge (������� ��� �� ���� � ������������!) �� ���������� ����
��������� ������� � ����� �����������. ������� ��������� ���������� ��
����� ��������.
���� ����� ���������� � ���, ��� �� ����� �������� �������� �������� �
�������� �������� git kung-fu.
����������� �ӣ �� �������� ��� git stash
���������� ������������� �������: git stash. ��������, stash --
������������, ������. ������� ��������� ��������� ���������
��������������� ���������, ��������� ��� ���� ��������� ������� �����
�� HEAD'�. �� ����, ������ git stash �� "������������" ��� ���������
���������, ������� ������ ������� �����, � ������� ����� ����� ������
git pull �� �������� ������������� �������� merge'�.
����� ��������� �� �����������-origin'� ���� ����� ��������� �� �����
����� "�������" "������������" ��������� � �������� �� �� �������
������� ����� �������� git stash apply.
���������� � �������� ��������� ���������, ����� ������� ������������
git add -u, git commit � git push, ����� ���� (��� ����� ����� git
stash apply) ����� �� ��������� �������� ������� ��������� ���������
�������� git stash drop.
����� �������� � ������� stash:
git stash : �������� ������� ��������������� ��������� � ���� ���������
� �������� ������� ������� ����� �� HEAD'� �����������;
git stash list : �������� ��� ��������� � �����;
git stash show : �������� ��������� ���������� � ����� (����);
git stash apply : ��������� ��������� ��������� �� ����� � �������
������� �����;
git stash drop : ������� ��������� ��������� � �����;
git stash pop : ��������� ��������� ��������� �� ����� � �������
������� ����� � ������� ��� �� �����;
git stash clear : �������� ���� ���������.
������ ��������� �������� �������� git help stash (��� man git-stash).
�� ���������� ���������
�ݣ ����� ������� ������������ ������������� ������ ��� ����������
������ ��� �������� �������������� ������� � git. ������ ���
����������� ������ �����������, ������������ �� -- ���� ������������.
��� ��� ����� �: ����� ���� ������� �����-������ ���, ��� �����������
������̣���� ����, � ������ ������ ��� ��� ���� ��������� �����. �����
����� ������� ����� ���������, ����� �� ��� ������������ -- ������
������������ ������������. �������� �� ����� �� �������.
������� branch
������ ������� �������� -- ������� git branch ���_������. �������
��������� ����� � ��������� ������. ����������� ������������ ������ �
����������� ����� �������� git branch (����� �������� ����� -v ���
������ ����� �������� HEAD'� ������� �� �������).
����� �������� ������ ���� ������������� �� ����, �� ����, ��������
������� ����� � ������������ � HEAD'�� ����� ������ � �������
�����������, ��� ��� �������� ���������� ����� ������ � ���� �������.
����� ������������ �������������� �������� git checkout ���_������.
��� �������� ������ ������ � ������������ �� ���� ����� ���������������
������� ������ ������� checkout, � ������: git checkout -b
���_������_������ -- ����� ����� ������������ ������� ����� ����� �
������������ �� ����.
�������� ����� ����������� ����������� ���������� master, � ��������� �
��� �� ������ ������ ����� �����, ��� � ������������ �� ����� ������
�����, �� ���� git checkout master.
������� �����
������ � ������� ���� ��� ������ ������ ����������� ��������� ����
��������� �� ����� ������ � master. ��� ������ ���������� ����������
�������: ���� �������� ����� master � ��������� a-b-c, �� ������� �����
bug1, ������ � ���� ��������� � �������� ��: � ������ bug1 �������
������� ���� a-b-c-d. ������, ����� ��������� ������� d � ����� master,
�� ��������� ��������� ������������������ ������:
git checkout master # ������������� �� ����� master
git merge bug1 # ��������� ������� � ������� bug1
��� ��� ������������������ ��������� �� ������ bug1 ����������
������������� �� ������������������ �� ������ master, ����������� merge
����� ������̣� ��� fast-forward, �� ���� ������� ����� ��� ������
���������, � �������� ������������������ ��������� � master'� ��������
���: a-b-c-d.
����� ��������� ��������� ���� ��������� �� ������ bug1 ��� �����
������������� ������� �������� git branch -d bug1. ��������
������������ ���� ������� �������� �������� �� ������� ���� ���������
��������� ����� � master'� -- ���� ��������� ���������� �� ���, �������
��������� ������� �����.
�������������� �������
���������� ����� �������, �� ����� ������� � ���������� �������:
������������ �������� ��������� � �������� ����� ����������� �
��������� ������. �������� ������ ���������� ����������� �������:
master � �������� ��������� a-b-c, � ����� bug1 � �����������
���������� d, �� ���� ������� ��� �ţ a-b-c-d.
�����������, ���� �� ���������� ������� ��� �����, ���-�� ������ �����
����������� �����-������ ���� � ���������� ţ � �������� �����������.
������, �������������� �� ������ bug1 � master, � �������� � master'�
git pull, �� �������� � � ����� �������: a-b-c-E, ��� E -- ��� ������
� ����������� ��� ����, ������� ����� ����������� ������ �����������.
���� ������ �������� � ����� master ��������� git merge bug1, ��
������� ������� ��������� ��������������� ����� ������� c �� 2 ����� �
��������������� �������������� �������� �����, ���������� �����
merge-������� ����� ������� E (�� master'�) � d (�� ������ bug1).
�������� �������� ����������� �������� ��������� ������� git rebase.
git rebase -- ���������� ��� "���������" ����� ������� ���������. �
����� �������, ���� � master ������� a-b-c-E, �� ����� "����������"
����� ������� c-d �� ������ bug1 ����� ������� E. ��������� ��� �����
���:
git checkout bug1 # ������������� �� ����� bug1
git rebase master # ���������� ������� ���������
����������� �� ��������� ������� ���������. git rebase ��ң� �����
������� �� �������� ������, ������������ �� ������� ������, ����������
� �������� ��������� (master), � "������������" ��� ����� ������
���������� ������� (master'�). �� ����, ������� ��������� ��� ������
bug1 ����� ���������� ���� ������� ����� ��������� ���: a-b-c-E-D.
���������� �������� �������� �� ��, ��� ������������ ��������� D
���������� �� ��������� ��������� d ����� ���������������, ���� �
��������� ����� �������� ��� ����, ����� � ����. �� ����, ��� ���
���������� ������ �������, � � �������� ������� "������" ��-��������
����������� ������ ��������.
���� � master'� ������� a-b-c-E, � � ������ bug1 ������� a-b-c-E-D,
�������� ��������� fast-forward merge, �������� "������" ������� ���
�������� ���������:
git checkout master
git merge bug1
����������� �������� master � �������� �������� a-b-c-E-D.
����� ��������� ���������� � ���������� ���� � �������������
������������: git help rebase (��� man git-rebase).
| ���������� |
[
RSS
] |
| �������� ����������� |
������:
�������: