Skip to content

Latest commit

 

History

History
2200 lines (1460 loc) · 72.4 KB

perlgit.pod

File metadata and controls

2200 lines (1460 loc) · 72.4 KB

NAME

perlgit - git 縺ィ Perl 繝ェ繝昴ず繝医Μ縺ォ髢「縺吶k隧ウ邏ー諠��ア

DESCRIPTION

縺薙�譁�嶌縺ッ縲 ̄erl 繧帝幕逋コ縺吶k縺溘a縺ォ git 繧剃スソ縺�ゥウ邏ー繧呈署萓帙@縺セ縺吶�� 蜊倥↓邁。蜊倥↑繝代ャ繝√↓蟇セ縺励※菴懈・ュ縺吶k縺薙→縺ォ闊亥袖縺後≠繧九↑繧峨�� 縺セ縺� perlhack 繧貞盾辣ァ縺励※縺上□縺輔>縲� 縺薙�譁�嶌縺ッ縲“it 繝ェ繝昴ず繝医Μ縺ク縺ョ譖ク縺崎セシ縺ソ繧「繧ッ繧サ繧ケ繧呈戟縺、莠コ縲�r蜷ォ繧�縲� Perl 縺ョ螳壽悄逧�↑雋「迪ョ閠�〒縺ゅk莠コ縲��縺溘a繧呈э蝗ウ縺励※縺�∪縺吶��

CLONING THE REPOSITORY

(繝ェ繝昴ず繝医Μ繧偵け繝ュ繝シ繝ウ縺吶k)

Perl縺ョ繧ス繝シ繧ケ繧ウ繝シ繝峨�縺吶∋縺ヲ縲�perl5.git.perl.org 縺ョ Git 繝ェ繝昴ず繝医Μ縺ォ 髮�クュ邂。逅�&繧後※縺�∪縺吶��

縺薙l繧貞ョ溯。後☆繧九%縺ィ縺ァ繝ェ繝昴ず繝医Μ縺ョ隱ュ縺ソ霎シ縺ソ蟆ら畑縺ョ繧ッ繝ュ繝シ繝ウ繧剃ス懊k縺薙→縺後〒縺阪∪縺�:

% git clone git://perl5.git.perl.org/perl.git perl

縺薙l縺ッ git 繝励Ο繝医さ繝ォ (繝昴�繝� 9418) 繧剃スソ縺�∪縺吶��

繝輔ぃ繧、繧「繧ヲ繧ゥ繝シ繝ォ縺ョ髢「菫ゅ〒 git 繝励Ο繝医さ繝ォ縺御スソ縺医↑縺��エ蜷医�� http 邨檎罰縺ァ繧ゅけ繝ュ繝シ繝ウ縺ァ縺阪∪縺吶′縲√�繧九°縺ォ驕�>縺ァ縺�:

% git clone http://perl5.git.perl.org/perl.git perl

WORKING WITH THE REPOSITORY

(繝ェ繝昴ず繝医Μ縺ァ縺ョ菴懈・ュ)

繝ェ繝昴ず繝医Μ繝�ぅ繝ャ繧ッ繝医Μ縺ォ螟画峩繧貞刈縺医◆繧峨�√◎縺ョ繝�ぅ繝ャ繧ッ繝医Μ繧呈、懈渊縺ァ縺阪∪縺吶�� 繧ッ繝ュ繝シ繝ウ菴懈�蠕後�√Μ繝昴ず繝医Μ縺ォ縺ッ蜊倅ク�縺ョ繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√′蜷ォ縺セ繧後∪縺吶�� 縺薙�繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√�縲√い繧ケ繧ソ繝ェ繧ケ繧ッ縺ァ遉コ縺輔l縺ヲ縺�k繧医≧縺ォ縲� 迴セ蝨ィ縺ョ繝悶Λ繝ウ繝√↓繧ゅ↑繧翫∪縺吶��

% git branch
* blead

branch 縺ォ -a 繧ケ繧、繝�メ繧剃スソ逕ィ縺吶k縺ィ縲√Μ繝昴ず繝医Μ蜀�� 繝ェ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝√b陦ィ遉コ縺輔l縺セ縺�:

% git branch -a
* blead
  origin/HEAD
  origin/blead
...

"origin" 縺ァ蟋九∪繧九ヶ繝ゥ繝ウ繝√�縲√け繝ュ繝シ繝ウ蜈�� "git remote" ("origin" 縺ィ縺�≧蜷榊燕) 縺ォ蟇セ蠢懊@縺セ縺吶�� 繝ェ繝「繝シ繝医�蜷�ヶ繝ゥ繝ウ繝√�縲√%繧後i縺ョ繝悶Λ繝ウ繝√↓繧医▲縺ヲ豁」遒コ縺ォ霑ス霍。縺輔l縺セ縺吶�� 縺薙l繧峨�繝ェ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝√〒縺ッ邨カ蟇セ縺ォ菴懈・ュ縺励↑縺�〒縺上□縺輔>縲� 繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√〒縺ョ縺ソ菴懈・ュ縺励∪縺吶�� 繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√�縲∵欠螳壹&繧後◆繝ェ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝√°繧� (繝励Ν譎ゅ↓)閾ェ蜍輔�繝シ繧ク縺吶k繧医≧縺ォ讒区�縺ァ縺阪∪縺吶�� 縺薙l縺ッ縲√Μ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝� origin/blead 縺九i繝槭�繧ク縺吶k繧医≧縺ォ 讒区�縺輔l縺ヲ縺�k繝�ヵ繧ゥ繝ォ繝医ヶ繝ゥ繝ウ繝� blead 縺ョ蝣エ蜷医〒縺吶��

譛�霑代�繧ウ繝溘ャ繝医r隕九i繧後∪縺�:

% git log

繝ェ繝昴ず繝医Μ縺九i譁ー縺励>螟画峩繧偵�繝ォ縺励�√Ο繝シ繧ォ繝ォ繝ェ繝昴ず繝医Μ繧呈峩譁ー縺励∪縺� (譛�蛻昴↓繧ッ繝ェ繝シ繝ウ縺ォ縺吶k蠢�ヲ√′縺ゅj縺セ縺�)縲�

% git pull

繝励Ν縺ョ逶エ蠕後↓繝悶Λ繝ウ繝� blead 縺ォ縺�k縺ィ莉ョ螳壹☆繧九→縲√%縺ョ繧ウ繝槭Φ繝峨� 莉・荳九→縺サ縺シ遲我セ。縺ォ縺ェ繧翫∪縺�:

% git fetch
% git merge origin/blead

螳滄圀縲∽ス懈・ュ繝�ぅ繝ャ繧ッ繝医Μ縺ォ繧「繧ッ繧サ繧ケ縺帙★縺ォ繝ュ繝シ繧ォ繝ォ繝ェ繝昴ず繝医Μ繧呈峩譁ー縺励◆縺��エ蜷医�縲� 谺。縺ョ繧医≧縺ォ縺励∪縺�:

% git fetch

縺セ縺溘�∝ョ夂セゥ縺輔l縺溘☆縺ケ縺ヲ縺ョ繝ェ繝「繝シ繝医↓蟇セ縺励※繝ェ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝√r 蜷梧凾縺ォ譖エ譁ー縺励◆縺��エ蜷医�縲∽サ・荳九�繧医≧縺ォ陦後≧縺薙→縺後〒縺阪∪縺�:

% git remote update

譛�蠕後�莠後▽縺ョ繧ウ繝槭Φ繝峨�縺ゥ縺。繧峨b菴懈・ュ繝�ぅ繝ャ繧ッ繝医Μ繧呈峩譁ー縺励∪縺帙s縺後�√←縺。繧峨b 繝ェ繝昴ず繝医Μ蜀��繝ェ繝「繝シ繝郁ソス霍。繝悶Λ繝ウ繝√r譖エ譁ー縺励∪縺吶��

繝ェ繝「繝シ繝医ヶ繝ゥ繝ウ繝√�繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√r菴懊k縺ォ縺ッ:

% git checkout -b maint-5.10 origin/maint-5.10

blead 縺ォ謌サ繧九↓縺ッ:

% git checkout blead

Finding out your status

(迴セ蝨ィ縺ョ迥カ諷九r遒コ隱阪☆繧�)

縺翫◎繧峨¥繧ゅ▲縺ィ繧ゅh縺丈スソ縺� git 繧ウ繝槭Φ繝峨�:

% git status

縺薙�繧ウ繝槭Φ繝峨�縲∝、画峩縺輔l縺溘ヵ繧。繧、繝ォ繧�┌隕悶&繧後※縺�↑縺� 霑ス霍。縺輔l縺ヲ縺�↑縺�ヵ繧。繧、繝ォ縺ェ縺ゥ縲√Μ繝昴ず繝医Μ縺ョ迴セ蝨ィ縺ョ迥カ諷九�隱ャ譏弱r 蜃コ蜉帙→縺励※逕滓�縺励∪縺吶�� 縺輔i縺ォ縲∵ャ。縺ョ繧ウ繝溘ャ繝医�縺溘a縺ォ繧ケ繝��繧ク繝ウ繧ー縺輔l縺溘ヵ繧。繧、繝ォ繧��� 騾壼クク縺ッ螟画峩譁ケ豕輔↓髢「縺吶k譛臥畑縺ェ諠��ア繧定。ィ遉コ縺励∪縺吶�� 縺溘→縺医�縲∵ャ。縺ョ繧医≧縺ォ縺ェ繧翫∪縺�:

% git status
On branch blead
Your branch is ahead of 'origin/blead' by 1 commit.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

      modified:   pod/perlgit.pod

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working
                                                             directory)

      modified:   pod/perlgit.pod

Untracked files:
  (use "git add <file>..." to include in what will be committed)

      deliberate.untracked

縺薙l縺ッ縲√さ繝溘ャ繝医�縺溘a縺ォ繧ケ繝��繧ク繝ウ繧ー縺輔l縺溘%縺ョ譁�嶌縺ォ螟画峩縺後≠縺」縺溘%縺ィ縺ィ縲� 縺セ縺�繧ケ繝��繧ク繝ウ繧ー縺輔l縺ヲ縺�↑縺�Ρ繝シ繧ュ繝ウ繧ー繝�ぅ繝ャ繧ッ繝医Μ縺ォ 縺輔i縺ォ螟画峩縺後≠縺」縺溘%縺ィ繧堤、コ縺励※縺�∪縺吶�� 縺セ縺溘�√Ρ繝シ繧ュ繝ウ繧ー繝�ぅ繝ャ繧ッ繝医Μ縺ォ霑ス霍。縺輔l縺ヲ縺�↑縺�ヵ繧。繧、繝ォ縺� 縺ゅ▲縺溘%縺ィ繧ら、コ縺励※縺�∪縺�; 縺セ縺溘�√%繧後i縺吶∋縺ヲ繧貞、画峩縺吶k譁ケ豕輔r遉コ縺励※縺�∪縺吶�� 縺セ縺溘��origin 繝ェ繝「繝シ繝医↓縺セ縺�繝励ャ繧キ繝・縺輔l縺ヲ縺�↑縺�Ρ繝シ繧ュ繝ウ繧ー繝悶Λ繝ウ繝� blead 縺ォ荳�縺、縺ョ繧ウ繝溘ャ繝医′縺ゅk縺薙→繧ら、コ縺励※縺�∪縺吶�� 豕ィ: 縺薙�蜃コ蜉帙�縲�git commit 縺ォ繝。繝�そ繝シ繧ク繧呈署萓帙@縺ェ縺��エ蜷医↓ 繝�Φ繝励Ξ繝シ繝医→縺励※陦ィ遉コ縺輔l繧九b縺ョ縺ァ繧ゅ≠繧翫∪縺吶��

Patch workflow

(繝代ャ繝√�繝ッ繝シ繧ッ繝輔Ο繝シ)

縺セ縺壹� ̄erl 繧ウ繧「繧偵ワ繝�け縺吶k縺溘a縺ョ隧ウ邏ー縺ォ縺、縺�※縺ッ perlhack 繧定ェュ繧薙〒縺上□縺輔>縲� 縺薙�譁�嶌縺ッ繧医>繝代ャ繝√�菴懊j譁ケ縺ォ髢「縺吶k螟壹¥縺ョ隧ウ邏ー縺ォ蟇セ蠢懊@縺ヲ縺�∪縺吶��

縺吶〒縺ォ Perl 繝ェ繝昴ず繝医Μ繧呈戟縺」縺ヲ縺�k蝣エ蜷医�縲� blead 繝悶Λ繝ウ繝√↓縺�※縲√Μ繝昴ず繝医Μ縺梧怙譁ー縺ァ縺ゅk縺薙→繧堤「コ隱阪☆繧句ソ�ヲ√′縺ゅj縺セ縺�:

% git checkout blead
% git pull

譛�譁ー縺ョ blead 繝舌�繧ク繝ァ繝ウ縺ォ蟇セ縺励※繝代ャ繝√r驕ゥ逕ィ縺吶k縺薙→繧偵♀蜍ァ繧√@縺セ縺吶�� 縺薙l縺ッ縲�㍾螟ァ縺ェ繝舌げ菫ョ豁」莉・螟悶�縺吶∋縺ヲ縺ョ螟画峩縺ォ蟇セ縺励※譁ー縺溘↑髢狗匱縺瑚。後o繧後k 蝣エ謇�縺ァ縺ゅk縺溘a縺ァ縺吶�� 驥榊、ァ縺ェ繝舌げ菫ョ豁」繝代ャ繝√�縲�未騾」縺吶k繝。繧、繝ウ繝悶Λ繝ウ繝√↓蟇セ縺励※菴懈�縺吶k縺九�� 菫ョ豁」縺碁←逕ィ縺輔l繧九☆縺ケ縺ヲ縺ョ繝悶Λ繝ウ繝√r遉コ縺吶Γ繝「縺ィ縺ィ繧ゅ↓謠仙�縺吶k蠢�ヲ√′縺ゅj縺セ縺吶��

縺吶∋縺ヲ縺梧怙譁ー縺ョ迥カ諷九↓縺ェ縺」縺溘�縺ァ縲√%繧後i縺ョ螟画峩縺ォ蟇セ縺励※荳�譎ら噪縺ェ 譁ー縺励>繝悶Λ繝ウ繝√r菴懈�縺励�√◎縺ョ繝悶Λ繝ウ繝√↓蛻�j譖ソ縺医k蠢�ヲ√′縺ゅj縺セ縺�:

% git checkout -b orange

縺薙l縺ッ莉・荳九�繧ゅ�縺ョ遏ュ邵ョ蠖「縺ァ縺�

% git branch orange
% git checkout orange

繝医ヴ繝�け繝悶Λ繝ウ繝√r菴懈�縺吶k縺薙→縺ァ縲√Γ繝ウ繝�リ縺ッ繧医j繝ェ繝九い縺ェ螻・豁エ縺ョ縺溘a縺ォ master blead 縺ォ繝ェ繝吶�繧ケ縺セ縺溘�繝槭�繧ク繝舌ャ繧ッ縺吶k縺薙→縺檎ー。蜊倥↓縺ェ繧翫∪縺吶�� 繝医ヴ繝�け繝悶Λ繝ウ繝√〒菴懈・ュ縺励↑縺��エ蜷医�� 繝。繝ウ繝�リ縺ッ螟画峩繧帝←逕ィ縺吶k蜑阪↓謇句虚縺ァ blead 縺ォ繝√ぉ繝ェ繝シ繝斐ャ繧ッ縺吶k 蠢�ヲ√′縺ゅj縺セ縺吶��

perl5-porters 縺ァ蜿ア繧峨l繧九%縺ィ縺ォ縺ェ繧九�縺ァ縲√◎繧薙↑縺薙→縺ッ縺励↑縺�〒縺上□縺輔>縲� 縺�∪縺上d繧翫∪縺励g縺���

谺。縺ォ縲∝、画峩繧貞刈縺医∪縺吶�� 縺溘→縺医�縲´eon Brocard 縺悟錐蜑阪r Orange Brocard 縺ォ螟画峩縺励◆蝣エ蜷医�� AUTHORS 繝輔ぃ繧、繝ォ蜀��蜷榊燕繧貞、画峩縺吶k蠢�ヲ√′縺ゅj縺セ縺�:

% perl -pi -e 's{Leon Brocard}{Orange Brocard}' AUTHORS

縺ゥ縺ョ繝輔ぃ繧、繝ォ繧貞、画峩縺励◆縺九r隕九i繧後∪縺�:

% git status
On branch orange
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

   modified:   AUTHORS

縺昴@縺ヲ螟画峩縺瑚ヲ九i繧後∪縺�:

% git diff
diff --git a/AUTHORS b/AUTHORS
index 293dd70..722c93e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -541,7 +541,7 @@    Lars Hecking              <lhecking@nmrc.ucc.ie>
 Laszlo Molnar                  <laszlo.molnar@eth.ericsson.se>
 Leif Huhn                      <leif@hale.dkstat.com>
 Len Johnson                    <lenjay@ibm.net>
-Leon Brocard                   <acme@astray.com>
+Orange Brocard                 <acme@astray.com>
 Les Peters                     <lpeters@aol.net>
 Lesley Binks                   <lesley.binks@gmail.com>
 Lincoln D. Stein               <lstein@cshl.org>

縺薙%縺ァ螟画峩繧偵Ο繝シ繧ォ繝ォ縺ォ繧ウ繝溘ャ繝医@縺セ縺�:

% git commit -a -m 'Rename Leon Brocard to Orange Brocard'
Created commit 6196c1d: Rename Leon Brocard to Orange Brocard
 1 files changed, 1 insertions(+), 1 deletions(-)

-a 繧ェ繝励す繝ァ繝ウ縺ッ縲“it 縺瑚ソス霍。縺励※縺�k繝輔ぃ繧、繝ォ縺ョ荳ュ縺ァ縺ゅ↑縺溘′螟画峩縺励◆ 蜈ィ縺ヲ縺ョ繝輔ぃ繧、繝ォ繧貞性繧�縺溘a縺ォ菴ソ繧上l縺セ縺吶�� 繧ゅ@縺薙�譎らせ縺ァ縲∽ス懈・ュ縺励◆繝輔ぃ繧、繝ォ縺ョ荳�驛ィ縺�縺代r繧ウ繝溘ャ繝医@縺溘>蝣エ蜷医�縲� -a 繧堤怐逡・縺励※縲√さ繝溘ャ繝医r陦後≧蜑阪↓繧ウ繝槭Φ繝� git add FILE ... 繧剃スソ縺」縺ヲ縺上□縺輔>縲� git add --interactive 縺ッ縲√ヵ繧。繧、繝ォ荳ュ縺ョ蜈ィ縺ヲ縺ョ螟画峩縺ァ縺ッ縺ェ縺上�� 繝輔ぃ繧、繝ォ縺ョ荳�驛ィ繧偵さ繝溘ャ繝医〒縺阪k繧医≧縺ォ縺励∪縺吶��

-m 繧ェ繝励す繝ァ繝ウ縺ッ繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧呈欠螳壹☆繧九◆繧√↓菴ソ繧上l縺セ縺吶�� 縺薙l繧堤怐逡・縺吶k縺ィ縲“it 縺ッ繝。繝�そ繝シ繧ク繧貞ッセ隧ア逧�↓菴懈�縺吶k縺溘a縺ォ 繝�く繧ケ繝医お繝�ぅ繧ソ繧帝幕縺阪∪縺吶�� 縺薙l縺ッ縲∝、画峩縺後%縺薙〒謖�ョ壹☆繧九し繝ウ繝励Ν繧医j繧り、�尅縺ェ蝣エ蜷医�√◎縺励※ 繧ィ繝�ぅ繧ソ縺ォ繧医▲縺ヲ縺ッ縲√さ繝溘ャ繝医Γ繝�そ繝シ繧ク縺ョ蜈磯�ュ陦後′荳企剞縺ョ 50 譁�ュ励r雜�∴縺ェ縺�%縺ィ繧堤衍繧九◆繧√↓譛臥畑縺ァ縺吶��

繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧呈嶌縺咲オゅ∴縺ヲ繧ィ繝�ぅ繧ソ繧堤オゆコ�☆繧九→縲� git 縺ッ螟画峩繧偵ョ繧」繧ケ繧ッ縺ォ譖ク縺崎セシ縺ソ縲∽サ・荳九�繧医≧縺ェ繝。繝�そ繝シ繧ク繧貞�蜉帙@縺セ縺�:

Created commit daf8e63: explain git status and stuff about remotes
 1 files changed, 83 insertions(+), 3 deletions(-)

git status 繧貞�螳溯。後☆繧九→縲∵ャ。縺ョ繧医≧縺ェ繧ゅ�縺瑚。ィ遉コ縺輔l縺セ縺�:

% git status
On branch orange
Untracked files:
  (use "git add <file>..." to include in what will be committed)

      deliberate.untracked

nothing added to commit but untracked files present (use "git add" to
                                                                 track)

逍代o縺励>縺ィ縺阪↓縺ッ縲∽サ悶�縺薙→繧偵☆繧句燕縺ォ縲√せ繝��繧ソ繧ケ繧偵メ繧ァ繝�け縺励※ 豕ィ諢乗キア縺剰ェュ繧薙〒縺上□縺輔>; 螟壹¥縺ョ逍大撫縺ッ git status 縺ョ蜃コ蜉帙〒逶エ謗・蠢懊∴繧峨l縺ヲ縺�∪縺吶��

譛�蠕後�繧ウ繝溘ャ繝医r莉・荳九�繧医≧縺ォ縺励※讀懈渊縺ァ縺阪∪縺�:

% git show HEAD

隱ャ譏弱∪縺溘�繝代ャ繝∬�菴薙↓貅�雜ウ縺ァ縺阪↑縺��エ蜷医�縲√ヵ繧。繧、繝ォ繧偵b縺�ク�蠎ヲ邱ィ髮�@縺ヲ縺九i 谺。縺ョ繧ウ繝槭Φ繝峨r逋コ陦後☆繧九%縺ィ縺ァ菫ョ豁」縺ァ縺阪∪縺�:

% git commit -a --amend

縺薙%縺ァ蜈ィ縺ヲ縺ョ繝ュ繝シ繧ォ繝ォ縺ェ螟画峩縺ョ縺溘a縺ョ繝代ャ繝√ヵ繧。繧、繝ォ繧剃ス懊k縺ケ縺阪〒縺�:

% git format-patch -M blead..
0001-Rename-Leon-Brocard-to-Orange-Brocard.patch

縺ゅk縺��螟画峩縺悟、壹>蝣エ蜷医�√▽縺セ繧翫ヨ繝斐ャ繧ッ繝悶Λ繝ウ繝√°繧峨�:

% git format-patch --stdout -M blead.. > topic-branch-changes.patch

perlbug@perl.org 螳帙↓螟画峩蜀�ョケ繧定ィ倩シ峨@縺� 繝。繝シ繝ォ繧帝�∽ソ。縺励�√%縺ョ繝代ャ繝√ヵ繧。繧、繝ォ繧呈キサ莉倥ヵ繧。繧、繝ォ縺ィ縺励※騾√▲縺ヲ縺上□縺輔>縲� RT 縺ァ霑ス霍。縺吶k縺薙→縺ォ蜉�縺医※縲� perlbug 縺ォ繝。繝シ繝ォ縺吶k縺ィ縲∬�蜍慕噪縺ォ perl5-porters 縺ォ (謇句虚縺ョ繝「繝�Ξ繝シ繧キ繝ァ繝ウ縺ョ蠕後�∝セ薙▲縺ヲ豌鈴聞縺ォ蠕�▲縺ヲ縺上□縺輔>) 霆「騾√&繧後∪縺吶�� 繝代ャ繝√�驕ゥ逕ィ縺吶k貅門y縺後〒縺阪※縺�↑縺�憾諷九□縺代l縺ゥ繧りュー隲悶@縺溘>蝣エ蜷医�縲� perl5-porters@perl.org 縺�縺代↓ 逶エ謗・繝。繝シ繝ォ繧帝�√k縺ケ縺阪〒縺吶��

繝代ャ繝√r騾√k縺ョ縺ォ git-send-email(1) 繧剃スソ繧上↑縺�〒縺上□縺輔>縲� 縺輔i縺ェ繧区ュ蝣ア縺ォ縺、縺�※縺ッ Sending patch emails 繧貞盾辣ァ縺励※縺上□縺輔>縲�

荳�譎ら噪縺ェ繝悶Λ繝ウ繝√r蜑企勁縺励◆縺�↑繧峨�∽サ・荳九�繧医≧縺ォ縺ァ縺阪∪縺�:

% git checkout blead
% git branch -d orange
error: The branch 'orange' is not an ancestor of your current HEAD.
If you are sure you want to delete it, run 'git branch -D orange'.
% git branch -D orange
Deleted branch orange.

Committing your changes

(螟画峩繧偵さ繝溘ャ繝医☆繧�)

莉願。後▲縺溘☆縺ケ縺ヲ縺ョ螟画峩繧剃ク�縺、縺ョ繧「繝医Α繝�け繝ヲ繝九ャ繝医→縺励※繧ウ繝溘ャ繝医@縺溘>蝣エ蜷医�縲� 谺。縺ョ繧ウ繝槭Φ繝峨r螳溯。後@縺セ縺�:

% git commit -a

(-a 縺ッ git 縺ォ蟇セ縺励※縲∝、画峩縺励◆縺吶∋縺ヲ縺ョ繝輔ぃ繧、繝ォ繧偵%縺ョ繧ウ繝溘ャ繝医↓ 霑ス蜉�縺吶k繧医≧縺ォ謖�、コ縺励∪縺吶�� commit -a 繧剃スソ逕ィ縺励※繧ゅ�∵眠縺励>繝輔ぃ繧、繝ォ縺ッ閾ェ蜍慕噪縺ォ繧ウ繝溘ャ繝医↓霑ス蜉�縺輔l縺セ縺帙s縲� 繝輔ぃ繧、繝ォ繧定ソス蜉�縺励◆縺��エ蜷医d縲∽ク�驛ィ縺ョ螟画峩繧偵さ繝溘ャ繝医@縺溘>蝣エ蜷医�縲� git add 縺ョ譁�嶌繧貞盾辣ァ縺励※縺上□縺輔>縲�

Git 縺ッ縲√≠縺ェ縺溘′螟画峩蜀�ョケ縺ョ繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧剃ス懈�縺ァ縺阪k繧医≧縺ォ縲� 縺頑ー励↓蜈・繧翫�繝�く繧ケ繝医お繝�ぅ繧ソ繧定オキ蜍輔@縺セ縺吶�� 驕ゥ蛻�↑繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧剃ス懈�縺吶k譁ケ豕輔↓髢「縺吶k縺輔i縺ェ繧区ュ蝣ア縺ォ縺、縺�※縺ッ縲� "Commit message" 繧貞盾辣ァ縺励※縺上□縺輔>縲�

繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧呈嶌縺咲オゅ∴縺ヲ繧ィ繝�ぅ繧ソ繧堤オゆコ�☆繧九→縲� git 縺ッ螟画峩繧偵ョ繧」繧ケ繧ッ縺ォ譖ク縺崎セシ縺ソ縲∽サ・荳九�繧医≧縺ェ繝。繝�そ繝シ繧ク繧貞�蜉帙@縺セ縺�:

Created commit daf8e63: explain git status and stuff about remotes
 1 files changed, 83 insertions(+), 3 deletions(-)

git status 繧貞�螳溯。後☆繧九→縲∵ャ。縺ョ繧医≧縺ェ繧ゅ�縺瑚。ィ遉コ縺輔l縺セ縺�:

% git status
On branch blead
Your branch is ahead of 'origin/blead' by 2 commits.
  (use "git push" to publish your local commits)
Untracked files:
  (use "git add <file>..." to include in what will be committed)

      deliberate.untracked

nothing added to commit but untracked files present (use "git add" to
                                                                 track)

菴輔°逍大撫縺後≠繧句�エ蜷医↓縺ッ縲∽ス輔°繧偵☆繧句燕縺ォ閾ェ蛻��繧ケ繝��繧ソ繧ケ繧偵メ繧ァ繝�け縺励※ 豕ィ諢乗キア縺剰ェュ繧薙〒縺上□縺輔>; 螟壹¥縺ョ逍大撫縺ォ蟇セ縺励※縺ッ縲“it status 蜃コ蜉帙′逶エ謗・遲斐∴縺ヲ縺上l縺セ縺吶��

Sending patch emails

(繝代ャ繝√r繝。繝シ繝ォ縺吶k)

繝代ャ繝√r菴懊▲縺溘i縲� (蜑阪�遽� 縺ァ隴ー隲悶@縺溘h縺�↓) 縺昴l繧呈キサ莉倥ヵ繧。繧、繝ォ縺ォ縺励※縲√ヱ繝�メ縺ョ隱ャ譏弱→蜈ア縺ォ縲� 騾壼クク縺ョ繝。繝シ繝ォ繧ッ繝ゥ繧、繧「繝ウ繝医〒 perlbug@perl.org 縺ォ騾√▲縺ヲ縺上□縺輔>縲�

git-format-patch(1) 縺ァ逕滓�縺励◆繝代ャ繝√r騾√k縺ョ縺ォ git-send-email(1) 繧� 菴ソ縺」縺ヲ縺ッ 縺�¢縺セ縺帙s縲� perlbug@perl.org 縺ョ蠕後m縺ァ蜍輔>縺ヲ縺�k RT 繝√こ繝�ヨ繧キ繧ケ繝�Β縺ッ縲� 髮サ蟄舌Γ繝シ繝ォ縺ョ繧、繝ウ繝ゥ繧、繝ウ繧ウ繝ウ繝�Φ繝�r隱崎ュ倥@縺ェ縺��縺ァ縲� RT 縺ォ繧、繝ウ繝ゥ繧、繝ウ縺ァ繝代ャ繝√r騾√k縺ィ縲√ヱ繝�メ縺ッ遐エ螢翫&繧後∪縺吶��

隱ー縺九′ RT 縺九i繝代ャ繝√r繝�繧ヲ繝ウ繝ュ繝シ繝峨☆繧九→縲�。悟錐 (繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク縺ョ 譛�蛻昴�陦�) 縺ッ蜑企勁縺輔l縺セ縺吶�� 萓九∴縺ー RT #74192 縺ィ 繧ウ繝溘ャ繝� a4583001 繧貞盾辣ァ縺励※縺上□縺輔>縲� 縺ゅk縺��縲∬ェー縺九′繝。繝シ繝ォ繝懊ャ繧ッ繧ケ縺ォ螻翫>縺� RT 縺九i縺ョ繝代ャ繝√r 驕ゥ逕ィ縺吶k縺九b縺励l縺セ縺帙s; 縺薙�蝣エ蜷� RT 縺ッ繝。繝�そ繝シ繧ク縺ョ繧、繝ウ繝ゥ繧、繝ウ繧ウ繝ウ繝�Φ繝�r 螟画峩縺励※縺�∪縺吶�� 縺薙�螟ア謨励↓髢「縺吶k謔ェ縺�セ九� RT #74532 縺ィ繧ウ繝溘ャ繝� f9bcfeac 繧貞盾辣ァ縺励※縺上□縺輔>縲�

A note on derived files

(豢セ逕溘ヵ繧。繧、繝ォ縺ォ髢「縺吶k豕ィ諢�)

繝�ぅ繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ蜀��螟壹¥縺ョ繝輔ぃ繧、繝ォ縺ッ 豢セ逕溽噪縺ェ繧ゅ�縺ァ縺ゅk縺薙→縺ォ豕ィ諢上@縺ヲ縺上□縺輔> -- 縺昴l繧峨�繝輔ぃ繧、繝ォ縺ォ繝代ャ繝√r蠖薙※繧九%縺ィ縺ッ驕ソ縺代※縺上□縺輔>; 縺ェ縺懊↑繧峨�“it 縺ッ縺昴l繧峨↓蟇セ縺吶k螟画峩繧定ヲ九k縺薙→縺後〒縺阪★縲� 繝薙Ν繝峨�繝ュ繧サ繧ケ縺後◎繧後i繧剃ク頑嶌縺阪☆繧九°繧峨〒縺吶�� 莉」繧上j縺ォ繧ェ繝ェ繧ク繝翫Ν縺ォ繝代ャ繝√r蠖薙※縺ヲ縺上□縺輔>縲� 縺サ縺ィ繧薙←縺ョ繝ヲ繝シ繝�ぅ繝ェ繝�ぅ(perldoc 縺ェ縺ゥ)縺ッ縺薙�繧ォ繝�ざ繝ェ縺ォ縺ゅj縺セ縺�; 縺吶↑繧上■縲「tils/perldoc 縺ァ縺ッ縺ェ縺� utils/perldoc.PL 縺ォ繝代ャ繝√r蠖薙※縺セ縺吶�� 蜷梧ァ倥↓縲�$install_root/lib 縺ォ縺ゅk繧ウ繝斐�縺九i $src_root/ext 莉・荳九�繝輔ぃ繧、繝ォ縺ォ 繝代ャ繝√r菴懈�縺励↑縺�〒縺上□縺輔>縲� 繧ス繝シ繧ケ繝�ぅ繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ縺ョ繝薙Ν繝我クュ縺ォ繧ウ繝斐�縺輔l縺溷庄閭ス諤ァ縺ョ縺ゅk繝輔ぃ繧、繝ォ縺ョ 驕ゥ蛻�↑蝣エ謇�縺後o縺九i縺ェ縺��エ蜷医�縲�MANIFEST 繧定ェソ縺ケ縺ヲ縺上□縺輔>縲�

Cleaning a working directory

(菴懈・ュ繝�ぅ繝ャ繧ッ繝医Μ繧呈祉髯、縺吶k)

git clean 繧ウ繝槭Φ繝峨�縺輔∪縺悶∪縺ェ蠑墓焚縺ァ make clean 縺ョ莉」繧上j縺ォ 菴ソ縺�%縺ィ縺後〒縺阪∪縺吶��

菴懈・ュ繝�ぅ繝ャ繧ッ繝医Μ繧貞�譛溽憾諷九↓繝ェ繧サ繝�ヨ縺吶k縺ォ縺ッ縲∵ャ。縺ョ繧医≧縺ォ縺励∪縺�:

% git clean -dxf

縺溘□縺励�√%繧後↓繧医j縺吶∋縺ヲ縺ョ霑ス霍。縺輔l縺ヲ縺�↑縺�さ繝ウ繝�Φ繝�′蜑企勁縺輔l縺セ縺吶�� 谺。縺ョ繧医≧縺ォ縺吶k縺ィ:

% git clean -Xf

繝薙Ν繝峨d繝�せ繝医�蜑ッ逕」迚ゥ縺ェ縺ゥ縲√☆縺ケ縺ヲ縺ョ辟。隕悶&繧後◆ 霑ス霍。縺輔l縺ヲ縺�↑縺�ヵ繧。繧、繝ォ繧貞炎髯、縺励∪縺吶�� 縺溘□縺励�∵焔蜍輔〒菴懈�縺励◆繝輔ぃ繧、繝ォ縺ッ谿九@縺セ縺吶��

繧ウ繝溘ャ繝医&繧後※縺�↑縺�キィ髮�□縺代r繧ュ繝」繝ウ繧サ繝ォ縺励◆縺��エ蜷医�縲� git checkout 繧剃スソ逕ィ縺励※蜈�↓謌サ縺吶ヵ繧。繧、繝ォ縺ョ繝ェ繧ケ繝医r荳弱∴繧九°縲� git checkout -f 繧剃スソ逕ィ縺励※縺吶∋縺ヲ繧貞�縺ォ謌サ縺吶%縺ィ縺後〒縺阪∪縺吶��

1縺、縺セ縺溘�隍�焚縺ョ繧ウ繝溘ャ繝医r繧ュ繝」繝ウ繧サ繝ォ縺励◆縺��エ蜷医�縲�git reset 繧� 菴ソ縺�%縺ィ縺後〒縺阪∪縺吶��

Bisecting

(bisect)

git 縺ッ縲∵欠螳壹&繧後◆繝舌げ縺悟ー主�縺輔l縺溘�縺後←縺ョ繧ウ繝溘ャ繝医↓雋ャ莉サ縺後≠繧九°繧� 豎コ螳壹☆繧狗オ�∩霎シ縺ソ縺ョ謇区ョオ繧呈署萓帙@縺ヲ縺�∪縺吶�� git bisect 縺ッ螟ア謨励☆繧区怙蛻昴�繧ウ繝溘ャ繝医r迚ケ螳壹☆繧九◆繧√↓ 螻・豁エ縺ョ莠悟�讀懃エ「繧定。後>縺セ縺吶�� 縺薙l縺ッ鬮倬�溘〒蠑キ蜉帙〒譟碑サ滓�ァ縺後≠繧翫∪縺吶′縲∝、壼ー代�貅門y縺悟ソ�ヲ√〒縲� 蜃ヲ逅�r閾ェ蜍募喧縺吶k縺ォ縺ッ螟夜Κ繧キ繧ァ繝ォ繧ケ繧ッ繝ェ繝励ヨ縺悟ソ�ヲ√〒縺吶��

繧ウ繧「縺ッ繝ゥ繝�ヱ繝励Ο繧ー繝ゥ繝�縺ァ縺ゅk Porting/bisect.pl 繧呈署萓帙@縺ヲ縺�∪縺�; 縺薙l縺ッ縺ァ縺阪k縺�縺台ス懈・ュ繧貞腰邏泌喧縺励※縲� Perl 縺ョ繝ッ繝ウ繝ゥ繧、繝翫�繧貞ョ溯。後☆繧九□縺代〒 bisect 縺後〒縺阪k繧医≧縺ォ縺励∪縺吶�� 萓九∴縺ー縲∵ャ。縺ョ繧ゅ�縺後>縺、繧ィ繝ゥ繝シ縺ォ縺ェ縺」縺溘°繧堤衍繧翫◆縺��エ蜷�:

perl -e 'my $a := 2'

蜊倡エ斐↓縺薙l繧貞ョ溯。後@縺セ縺�:

.../Porting/bisect.pl -e 'my $a := 2;'

Porting/bisect.pl 繧� (莉悶�繝輔ぃ繧、繝ォ縺ェ縺励〒) 荳�縺、縺ョ繧ウ繝槭Φ繝峨〒菴ソ縺�%縺ィ縺ァ縲� 谺。縺ョ繧ゅ�繧堤ー。蜊倥↓隕九▽縺代i繧後∪縺�:

  • 縺ゥ縺ョ繧ウ繝溘ャ繝医′縺薙�萓九�繧ウ繝シ繝峨r螢翫@縺ヲ縺�k縺�

  • 縺ゥ縺ョ繧ウ繝溘ャ繝医°繧峨%縺ョ萓九�繧ウ繝シ繝峨′蜍穂ス懊@蟋九a縺ヲ縺�k縺�

  • 縺ゥ縺ョ繧ウ繝溘ャ繝医′譛�蛻昴↓縺薙�豁」隕剰。ィ迴セ縺ォ繝槭ャ繝√Φ繧ー縺吶k繝輔ぃ繧、繝ォ繧定ソス蜉�縺励◆縺�

  • 縺ゥ縺ョ繧ウ繝溘ャ繝医′譛�蠕後↓縺薙�豁」隕剰。ィ迴セ縺ォ繝槭ャ繝√Φ繧ー縺吶k繝輔ぃ繧、繝ォ繧貞炎髯、縺励◆縺�

騾壼クク縺ッ縺ゥ縺ョ繝舌�繧ク繝ァ繝ウ縺ョ perl 繧剃スソ縺�°縺ョ蟋狗せ縺ィ邨らせ縺ョ繝ェ繝薙ず繝ァ繝ウ繧� 遏・縺」縺ヲ縺�k蠢�ヲ√�縺ゅj縺セ縺帙s; Porting/bisect.pl 縺ッ閾ェ蜍慕噪縺ォ縲� 繝�せ繝医こ繝シ繧ケ縺碁�夐℃縺吶k譛�蛻昴�螳牙ョ夂沿繝舌�繧ク繝ァ繝ウ繧呈爾縺励∪縺吶�� Configure 縺ィ繝薙Ν繝画凾繧ェ繝励す繝ァ繝ウ繧貞性繧�螳悟�縺ェ譁�嶌繧定ヲ九k縺ォ縺ッ Porting/bisect.pl --help 繧貞ョ溯。後@縺ヲ縺上□縺輔>縲�

Porting/bisect.pl 縺梧署萓帙@縺ヲ縺�k繧ゅ�繧医j繧ゅ&繧峨↓譟碑サ滓�ァ縺悟ソ�ヲ√↑蝣エ蜷医�� git bisect 繧定�蛻��霄ォ縺ァ螳溯。後☆繧句ソ�ヲ√′縺ゅj縺セ縺吶�� perl 繝ェ繝薙ず繝ァ繝ウ縺ョ繝薙Ν繝峨→繝�せ繝医r閾ェ蜍募喧縺吶k縺溘a縺ォ git bisect run 繧剃スソ縺��縺梧怙繧ゆセソ蛻ゥ縺ァ縺吶�� 縺薙�縺溘a縺ォ縲∫音螳壹�繝ェ繝薙ず繝ァ繝ウ繧偵ユ繧ケ繝医☆繧九◆繧√↓蜻シ縺ウ蜃コ縺吶◆繧√� git 縺ョ縺溘a縺ョ繧キ繧ァ繝ォ繧ケ繧ッ繝ェ繝励ヨ縺悟ソ�ヲ√〒縺吶�� 萓九�繧ケ繧ッ繝ェ繝励ヨ縺ッ Porting/bisect-example.sh 縺ァ縲� 縺薙l縺ッ繝ェ繝昴ず繝医Μ縺ョ 螟門� 縺ォ繧ウ繝斐�縺吶k縺ケ縺阪〒縺�; bisect 蜃ヲ逅��縲∝ョ溯。後&繧後k縺ィ繧ッ繝ェ繝シ繝ウ縺ェ繝√ぉ繝�け繧「繧ヲ繝医�縺溘a縺ォ 迥カ諷九r繝ェ繧サ繝�ヨ縺吶k縺九i縺ァ縺吶�� 蠕瑚ソー縺ョ隱ャ譏弱�縲√せ繧ッ繝ェ繝励ヨ繧� ~/run 縺ィ縺励※繧ウ繝斐�縺励※縲√◎繧後r 驕ゥ蛻�↓邱ィ髮�☆繧九%縺ィ繧剃サョ螳壹@縺ヲ縺�∪縺吶��

縺セ縺� bisect 繝「繝シ繝峨↓蜈・繧翫∪縺�:

% git bisect start

萓九∴縺ー縲√ヰ繧ー縺� HEAD 縺ォ縺ゅ▲縺ヲ繧� 5.10.0 縺ォ縺ッ縺ェ縺九▲縺溷�エ蜷医��git 縺ッ 莉・荳九�繧医≧縺ォ蜈・蜉帙☆繧九%縺ィ縺ァ縺薙l繧貞ュヲ鄙偵@縺セ縺�:

% git bisect bad
% git bisect good perl-5.10.0
Bisecting: 853 revisions left to test after this

縺薙�邨先棡縲�HEAD 縺ィ perl-5.10.0 縺ョ荳ュ髢薙�繧ウ繝溘ャ繝医′ 繝√ぉ繝�け繧「繧ヲ繝医&繧後∪縺吶�� 谺。縺ョ繧医≧縺ォ縺励※ bisect 蜃ヲ逅�r螳溯。後@縺セ縺�:

% git bisect run ~/run

譛�蛻昴�荳肴ュ」縺ェ繧ウ繝溘ャ繝医′蛻�屬縺輔l繧九→縲�git bisect 縺ッ谺。縺ョ繧医≧縺ォ險�縺�∪縺�:

ca4cfd28534303b82a216cfe83a1c80cbc3b9dc5 is first bad commit
commit ca4cfd28534303b82a216cfe83a1c80cbc3b9dc5
Author: Dave Mitchell <davem@fdisolutions.com>
Date:   Sat Feb 9 14:56:23 2008 +0000

    [perl #49472] Attributes + Unknown Error
    ...

bisect run success

git bisect log 縺ィ git bisect visualize 縺ァ bisect 蜃ヲ逅�r 隕励″隕九k縺薙→縺後〒縺阪∪縺吶�� git bisect reset縺ッ bisect 繝「繝シ繝峨r隗」髯、縺励∪縺吶��

譛�蛻昴� good 迥カ諷九�縲∵怙蛻昴� bad 迥カ諷九�逾門�縺ァ縺ゅk蠢�ヲ√′縺ゅk縺薙→縺ォ 豕ィ諢上@縺ヲ縺上□縺輔>縲� 菴輔i縺九�繝舌げ繧� 隗」豎コ縺励◆ 繧ウ繝溘ャ繝医r讀懃エ「縺励◆縺��エ蜷医�縲√ユ繧ケ繝医こ繝シ繧ケ繧� 蜿崎サ「縺輔○縲� (縺、縺セ繧翫�^K 縺ェ繧� 1 縺ァ邨ゆコ�@縲√◎縺�〒縺ェ縺�↑繧� 0 縺ァ邨ゆコ�☆繧�)縲� 荳矩剞繧� good縲∽ク企剞繧� bad 縺ィ繝槭�繧ッ縺吶k蠢�ヲ√′縺ゅj縺セ縺吶�� 縲梧怙蛻昴�荳肴ュ」縺ェ繧ウ繝溘ャ繝医�阪�縲√�後ヰ繧ー縺瑚ァ」豎コ縺輔l縺滓怙蛻昴�繧ウ繝溘ャ繝医�阪→ 隗」驥医☆繧句ソ�ヲ√′縺ゅj縺セ縺吶��

git help bisect 縺ォ縺ッ縲∽コ悟�謗「邏「繧貞セョ隱ソ謨エ縺吶k譁ケ豕輔↓髢「縺吶k諠��ア縺瑚ア雁ッ後↓ 逕ィ諢上&繧後※縺�∪縺吶��

bisect 縺ョ蠕後�|isect 蜃ヲ逅�〒隴伜挨縺輔l縺溘さ繝溘ャ繝医�譎らせ縺ァ perl 繧定ィュ螳壹�� 繝薙Ν繝峨�√ユ繧ケ繝医@縺溘>縺ィ諤昴≧縺九b縺励l縺セ縺帙s縲� 譎ゅ���∫音縺ォ蜿、縺� perl 縺ァ縺ッ縲√%縺ョ蜃ヲ逅�クュ縺ォ make 縺悟、ア謨励☆繧九%縺ィ縺後≠繧翫∪縺吶�� 縺薙�蝣エ蜷医�∝商縺�さ繝溘ャ繝医�繝昴う繝ウ繝医〒繧ス繝シ繧ケ繧ウ繝シ繝峨↓繝代ャ繝√r蠖薙※繧九%縺ィ縺� 縺ァ縺阪k縺九b縺励l縺セ縺帙s縲� 縺昴≧縺吶k縺溘a縺ォ縺ッ縲� "Building perl at older commits" in perlhack 縺ァ謠蝉セ帙&繧後※縺�k謠先。医↓ 蠕薙▲縺ヲ縺上□縺輔>縲�

Topic branches and rewriting history

(繝医ヴ繝�け繝悶Λ繝ウ繝√→螻・豁エ縺ョ譖ク縺肴鋤縺�)

蛟九���繧ウ繝溘ャ繧ソ繝シ縺ッ縲�yourname/some_descriptive_name 縺ョ荳九↓繝医ヴ繝�け繝悶Λ繝ウ繝√r菴懈�縺吶k蠢�ヲ√′縺ゅj縺セ縺�:

% branch="$yourname/$some_descriptive_name"
% git checkout -b $branch
... do local edits, commits etc ...
% git push origin -u $branch

縺ィ縺ヲ繧ょ商縺�ヰ繝シ繧ク繝ァ繝ウ (1.7 繧医j蜑�) 縺ョ git 繧偵∪縺�菴ソ縺」縺ヲ縺�k蝣エ蜷医�� git push 縺ォ縺ッ -u 繧ェ繝励す繝ァ繝ウ縺後≠繧翫∪縺帙s; 譛�蠕後�謇矩��r谺。縺ョ繧ゅ�縺ァ鄂ョ縺肴鋤縺医k蠢�ヲ√′縺ゅj縺セ縺�:

% git push origin $branch:refs/heads/$branch
% git config branch.$branch.remote origin
% git config branch.$branch.merge refs/heads/$branch

莉悶�莠コ縺ョ繝医ヴ繝�け繝悶Λ繝ウ繝√r螟画峩縺励◆縺��エ蜷医�∝、画峩縺吶k蜑阪↓ 縺昴�菴懈�閠�↓遒コ隱阪☆繧句ソ�ヲ√′縺ゅj縺セ縺吶��

蜈��菴懈�閠�′繝悶Λ繝ウ繝√�螻・豁エ繧堤キィ髮�@縺溘%縺ィ縺ォ豌嶺サ倥¥縺薙→縺後≠繧翫∪縺吶�� 縺薙l縺ォ縺ッ螟壹¥縺ョ豁」蠖薙↑逅�罰縺後≠繧翫∪縺吶�� 蝣エ蜷医↓繧医▲縺ヲ縺ッ縲∝腰縺ォ繝悶Λ繝ウ繝√r譁ー縺励>繧ス繝シ繧ケ繝昴う繝ウ繝医↓蝓コ縺・縺�※ 菴懊j逶エ縺吶%縺ィ縺ォ縺ェ繧九%縺ィ繧ゅ≠繧翫∪縺吶�� 蝣エ蜷医↓繧医▲縺ヲ縺ッ縲√ヶ繝ゥ繝ウ繝√r blead 縺ォ繝槭�繧ク縺吶k蜑阪↓縲� 蛻晄悄縺ョ繧ウ繝溘ャ繝医〒菫ョ豁」縺励◆縺�お繝ゥ繝シ繧定ヲ九▽縺代◆縺薙→繧ゅ≠繧翫∪縺吶��

迴セ蝨ィ縲√�繧ケ繧ソ繝シ繝ェ繝昴ず繝医Μ縺ッ縲�撼 fast-forward 縺ョ繝槭�繧ク繧堤ヲ∵ュ「縺吶k繧医≧縺ォ 讒区�縺輔l縺ヲ縺�∪縺吶�� 縺薙l縺ッ縲∽クュ縺ョ繝悶Λ繝ウ繝√�繝ェ繝吶�繧ケ縺ィ繝励ャ繧キ繝・繧貞腰荳�繧ケ繝�ャ繝励→縺励※縺ッ 縺ァ縺阪↑縺�%縺ィ繧呈э蜻ウ縺励∪縺吶��

繝励ャ繧キ繝・縺輔l縺溘ヶ繝ゥ繝ウ繝√�螻・豁エ繧貞�蜿門セ励∪縺溘�螟画峩縺吶k蜚ッ荳�縺ョ譁ケ豕輔�縲� 縺昴�繝悶Λ繝ウ繝√r蜑企勁縺励�∝酔縺伜錐蜑阪〒譁ー縺励>繝悶Λ繝ウ繝√→縺励※繝励ャ繧キ繝・縺吶k縺薙→縺ァ縺吶�� 縺薙l繧定。後≧縺薙→縺ォ縺、縺�※縺ッ諷朱㍾縺ォ讀懆ィ弱@縺ヲ縺上□縺輔>縲� 莉悶�繝ヲ繝シ繧カ繝シ縺梧眠縺励>繝舌�繧ク繝ァ繝ウ縺ォ繝ュ繝シ繧ォ繝ォ縺ョ螟画峩繧堤ー。蜊倥↓ 繝√ぉ繝ェ繝シ繝斐ャ繧ッ縺ァ縺阪k繧医≧縺ォ縲� 繝悶Λ繝ウ繝√�蜷榊燕繧帝��分縺ォ螟画峩縺励◆譁ケ縺後h縺��エ蜷医′縺ゅj縺セ縺�(XXX:隱ャ譏弱′蠢�ヲ�)縲�

蛟倶ココ逧�↑繝医ヴ繝�け繝悶Λ繝ウ繝√r繝ェ繝吶�繧ケ縺励◆縺��エ蜷医�縲� 譌「蟄倥�繝医ヴ繝�け繝悶Λ繝ウ繝√r蜑企勁縺励�∵眠縺励>繝舌�繧ク繝ァ繝ウ縺ィ縺励※ 繝励ャ繧キ繝・縺吶k蠢�ヲ√′縺ゅj縺セ縺吶�� 縺薙l縺ッ縲√ヶ繝ゥ繝ウ繝√r繝ェ繝吶�繧ケ縺励◆蠕後�∵ャ。縺ョ蜈ャ蠑� (隧ウ邏ー縺ッ git push 譁�嶌縺ョ refspec 縺ォ髢「縺吶k隱ャ譏弱r蜿ら�)縺ァ陦後≧縺薙→縺後〒縺阪∪縺吶��

# first rebase
% git checkout $user/$topic
% git fetch
% git rebase origin/blead

# then "delete-and-push"
% git push origin :$user/$topic
% git push origin $user/$topic

豕ィ諢�: 繝ェ繝昴ず繝医Μ繝ャ繝吶Ν縺ァ"繝励Λ繧、繝槭Μ"繝悶Λ繝ウ繝√r蜑企勁縺吶k縺薙→縺ッ 遖∵ュ「縺輔l縺ヲ縺�∪縺吶�� 縺薙l縺ッ m!^(blead maint perl)! 縺ォ繝槭ャ繝√Φ繧ー縺吶k繝悶Λ繝ウ繝√〒縺吶�� 蜑企勁縺励h縺�→縺吶k縺ィ縲“it縺ッ谺。縺ョ繧医≧縺ェ繧ィ繝ゥ繝シ繧堤函謌舌@縺セ縺�:

% git push origin :blead
*** It is forbidden to delete blead/maint branches in this repository
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/blead
To ssh://perl5.git.perl.org/perl
 ! [remote rejected] blead (hook declined)
 error: failed to push some refs to 'ssh://perl5.git.perl.org/perl'

繝昴Μ繧キ繝シ縺ィ縺励※縲|lead 繝悶Λ繝ウ繝√→ maint-* 繝悶Λ繝ウ繝√�螻・豁エ縺ッ邱ィ髮� 縺励∪縺帙s縲� 繧ソ繧、繝励Α繧ケ(縺セ縺溘�縺昴l莉・荳�)縺� blead 縺セ縺溘� maint-* 縺ク縺ョ繧ウ繝溘ャ繝医↓ 蠢阪�霎シ繧薙□蝣エ蜷医�縲∝挨縺ョ繧ウ繝溘ャ繝医〒菫ョ豁」縺励∪縺吶�� 縺薙l繧峨�繝悶Λ繝ウ繝√〒險ア蜿ッ縺輔l縺ヲ縺�k譖エ譁ー縺ョ繧ソ繧、繝励� "fast-forward" 縺�縺代〒縲� 縺吶∋縺ヲ縺ョ螻・豁エ縺御ソ晏ュ倥&繧後∪縺吶��

讓呎コ也噪縺ェ perl.git 繝ェ繝昴ず繝医Μ蜀��豕ィ驥井サ倥″繧ソ繧ー縺ッ縲∝炎髯、繧� 螟画峩縺輔l繧九%縺ィ縺ッ縺ゅj縺セ縺帙s縲� 繝ュ繝シ繧ォ繝ォ繧ソ繧ー繧� perl.git 縺ォ繝励ャ繧キ繝・縺吶k蜑阪↓縲√§縺」縺上j閠�∴縺ヲ縺ソ縺ヲ縺上□縺輔> (蜊倡エ斐ち繧ー縺ョ繝励ャ繧キ繝・縺ッ險ア蜿ッ縺輔l縺ヲ縺�∪縺帙s)縲�

Grafts

(謗・縺取惠)

Perl螻・豁エ縺ォ縺ッ縲∝、画鋤縺ァ讀懷�縺輔l縺ェ縺九▲縺溯ェ、繧翫′荳�縺、蜷ォ縺セ繧後※縺�∪縺�: blead 縺ィ maint-5.10 縺ョ髢薙�螻・豁エ縺ォ繝槭�繧ク縺瑚ィ倬鹸縺輔l縺セ縺励◆縺後�� 螳滄圀縺ォ縺ッ繝槭�繧ク縺ッ逋コ逕溘@縺セ縺帙s縺ァ縺励◆縲� git 縺ョ諤ァ雉ェ荳翫�√ヱ繝悶Μ繝�け繝ェ繝昴ず繝医Μ縺ァ菫ョ豁」縺吶k縺薙→縺ッ迴セ蝨ィ荳榊庄閭ス縺ァ縺吶�� .git/info/graft 繝輔ぃ繧、繝ォ縺ォ谺。縺ョ陦後r霑ス蜉�縺吶k縺薙→縺ァ縲� 縺薙�隱、縺」縺溘�繝シ繧ク繧偵Ο繝シ繧ォ繝ォ縺ァ蜑企勁縺ァ縺阪∪縺吶��

296f12bbbbaa06de9be9d09d3dcf8f4528898a49 434946e0cb7a32589ed92d18008aaa1d88515930

蝠城。後�縲後�繝シ繧ク縲埼�伜沺縺ァ bisect 縺瑚。後o繧後k蝣エ蜷医�√%縺ョ graft 陦後r 謖�ョ壹☆繧九%縺ィ縺檎音縺ォ驥崎ヲ√〒縺吶��

WRITE ACCESS TO THE GIT REPOSITORY

(git 繝ェ繝昴ず繝医Μ縺ク縺ョ譖ク縺崎セシ縺ソ繧「繧ッ繧サ繧ケ)

荳�譌ヲ譖ク縺崎セシ縺ソ讓ゥ髯舌r蠕励◆繧峨�� 繝励ャ繧キ繝・繧呈怏蜉ケ縺ォ縺吶k縺溘a縺ォ origin remote 縺ョ縺溘a縺ョ URL 繧� 螟画峩縺吶k蠢�ヲ√′縺ゅj縺セ縺吶�� git-config(1) 繧ウ繝槭Φ繝峨〒 .git/config 繧呈ャ。縺ョ繧医≧縺ォ邱ィ髮�@縺セ縺�:

% git config remote.origin.url ssh://perl5.git.perl.org/perl.git

繝ヲ繝シ繧カ繝シ蜷阪→髮サ蟄舌Γ繝シ繝ォ繧「繝峨Ξ繧ケ繧定ィュ螳壹☆繧九%縺ィ繧ゅ〒縺阪∪縺吶�� 縺サ縺ィ繧薙←縺ョ莠コ縺ッ縲∽サ・荳九�繧医≧縺ォ縺吶k縺薙→縺ァ ~/.gitconfig 縺ァ繧ー繝ュ繝シ繝舌Ν縺ォ 荳�蠎ヲ縺薙l繧定。後>縺セ縺�:

% git config --global user.name "ニvar Arnfj� Bjarmason"
% git config --global user.email avarab@gmail.com

縺励°縺励�}erl 縺�縺代↓蟇セ縺励※縺薙l繧貞、画峩縺励◆縺��エ蜷医�縲� perl 縺ァ谺。縺ョ繧医≧縺ェ繧ゅ�繧貞ョ溯。後@縺セ縺�:

% git config user.email avar@cpan.org

origin 繧� git remote 縺ィ縺励※邯ュ謖√@縲《sh 繧「繧ッ繧サ繧ケ逕ィ縺ョ譁ー縺励> remote 繧� 霑ス蜉�縺吶k縺薙→繧ょ庄閭ス縺ァ縺�:

% git remote add camel perl5.git.perl.org:/perl.git

縺薙l縺ォ繧医j縲�origin 縺九i繝励Ν縺励※繝ュ繝シ繧ォ繝ォ繝ェ繝昴ず繝医Μ繧呈峩譁ー縺ァ縺阪∪縺�; 縺薙l縺ッ繧医j鬮倬�溘〒縲∬ェ崎ィシ繧貞ソ�ヲ√→縺励∪縺帙s; 縺セ縺溘��camel 繝ェ繝「繝シ繝医〒螟画峩繧偵�繝�す繝・繝舌ャ繧ッ縺吶k縺薙→繧ゅ〒縺阪∪縺吶��

% git fetch camel
% git push camel

fetch 繧ウ繝槭Φ繝峨�蜊倥↓ camel refs 繧呈峩譁ー縺吶k縺�縺代〒縺�; 縺ェ縺懊↑繧峨�√が繝悶ず繧ァ繧ッ繝郁�菴薙� origin 縺九i繝励Ν縺吶k縺ィ縺阪↓ 繝輔ぉ繝�メ縺輔l繧九∋縺阪□縺九i縺ァ縺吶��

Accepting a patch

(繝代ャ繝√r蜿励¢蜈・繧後k)

蜑崎ソー縺ョ遽�縺ァ繧剃スソ縺」縺ヲ逕滓�縺輔l縺溘ヱ繝�メ繝輔ぃ繧、繝ォ繧貞女縺大叙縺」縺溷�エ蜷医�縲� 繝代ャ繝√r隧ヲ縺励※縺ソ縺ヲ縺上□縺輔>縲�

縺セ縺壹�√%繧後i縺ョ螟画峩縺ョ縺溘a縺ョ荳�譎ら噪縺ェ譁ー縺励>繝悶Λ繝ウ繝√r菴懈�縺励�√◎縺ョ繝悶Λ繝ウ繝√↓ 蛻�j譖ソ縺医k蠢�ヲ√′縺ゅj縺セ縺�:

% git checkout -b experimental

git format-patch 縺ァ繝輔か繝シ繝槭ャ繝医&繧後◆繝代ャ繝√�縲�git am 縺ァ驕ゥ逕ィ縺輔l縺セ縺�:

% git am 0001-Rename-Leon-Brocard-to-Orange-Brocard.patch
Applying Rename Leon Brocard to Orange Brocard

荳�驛ィ縺ョ UNIX 繝。繝シ繝ォ繧キ繧ケ繝�Β縺ッ縲∵キサ莉倥ユ繧ュ繧ケ繝医↓ 'From ' 縺悟性縺セ繧後※縺�k縺ィ 縺翫°縺励¥縺ェ繧九°繧ゅ@繧後↑縺�%縺ィ縺ォ豕ィ諢上@縺ヲ縺上□縺輔>縲� 縺薙l縺ッ谺。縺ョ繧医≧縺ォ縺励※菫ョ豁」縺励∪縺�:

% perl -pi -e's/^>From /From /' \
                       0001-Rename-Leon-Brocard-to-Orange-Brocard.patch

逕溘� diff 縺�縺代′謠蝉セ帙&繧後※縺�k蝣エ蜷医�縲∵ャ。縺ョ 2 谿オ髫弱�繝励Ο繧サ繧ケ繧� 菴ソ逕ィ縺吶k縺薙→繧ゅ〒縺阪∪縺�:

% git apply bugfix.diff
% git commit -a -m "Some fixing" \
                           --author="That Guy <that.guy@internets.com>"

縺薙%縺ァ螟画峩繧呈、懈渊縺ァ縺阪∪縺�:

% git show HEAD
commit b1b3dab48344cff6de4087efca3dbd63548ab5e2
Author: Leon Brocard <acme@astray.com>
Date:   Fri Dec 19 17:02:59 2008 +0000

  Rename Leon Brocard to Orange Brocard

diff --git a/AUTHORS b/AUTHORS
index 293dd70..722c93e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -541,7 +541,7 @@ Lars Hecking                 <lhecking@nmrc.ucc.ie>
 Laszlo Molnar                  <laszlo.molnar@eth.ericsson.se>
 Leif Huhn                      <leif@hale.dkstat.com>
 Len Johnson                    <lenjay@ibm.net>
-Leon Brocard                   <acme@astray.com>
+Orange Brocard                 <acme@astray.com>
 Les Peters                     <lpeters@aol.net>
 Lesley Binks                   <lesley.binks@gmail.com>
 Lincoln D. Stein               <lstein@cshl.org>

繧ゅ@縺ゅ↑縺溘′ Perl 縺ョ繧ウ繝溘ャ繧ソ縺ァ縲√ヱ繝�メ縺瑚憶縺�b縺ョ縺�縺ィ諤昴≧縺ェ繧峨�� 縺昴l繧� blead 縺ォ繝槭�繧ク縺励※繝。繧、繝ウ縺ョ繝ェ繝昴ず繝医Μ縺ォ繝励ャ繧キ繝・縺吶k縺薙→縺後〒縺阪∪縺�:

% git checkout blead
% git merge experimental
% git push origin blead

荳�譎ら噪縺ェ繝悶Λ繝ウ繝√r蜑企勁縺励◆縺�↑繧峨�∽サ・荳九�繧医≧縺ォ縺ァ縺阪∪縺�:

% git checkout blead
% git branch -d experimental
error: The branch 'experimental' is not an ancestor of your current
HEAD.  If you are sure you want to delete it, run 'git branch -D
experimental'.
% git branch -D experimental
Deleted branch experimental.

Committing to blead

(blead 縺ォ繧ウ繝溘ャ繝医☆繧�)

'blead' 繝悶Λ繝ウ繝√�縲 ̄erl 縺ョ谺。縺ョ豁」蠑冗沿繝ェ繝ェ繝シ繧ケ縺ォ縺ェ繧翫∪縺吶��

菴輔i縺九� 繝ュ繝シ繧ォ繝ォ縺ェ螟画峩繧偵�繝�す繝・縺吶k蜑阪↓縲� 縺ゅ↑縺溘�蠕後°繧画擂繧倶サ悶�繧ウ繝溘ャ繧ソ縺檎�謇九→譚セ譏弱r謖√▲縺ヲ縺薙↑縺�h縺�↓縲� 縺�¥縺、縺九�縺薙→繧偵☆繧九�縺梧・オ繧√※驥崎ヲ√〒縺�:

  • 繧医>繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク繧呈嶌縺上h縺�↓縺励※縺上□縺輔>縲� 隧ウ縺励¥縺ッ "Commit message" in perlhack 繧貞盾辣ァ縺励※縺上□縺輔>縲�

  • 繝�せ繝医せ繧、繝シ繝医r螳溯。後@縺セ縺吶�� 荳�縺、縺ョ繧ソ繧、繝励Α繧ケ菫ョ豁」縺後ユ繧ケ繝医ヵ繧。繧、繝ォ繧貞」翫☆縺ィ縺ッ諤昴o縺ェ縺�°繧ゅ@繧後∪縺帙s縲� 縺昴l縺ッ髢馴&縺�〒縺吶�� 繧ケ繧、繝シ繝医r螳溯。後@縺ェ縺�→蝠城。後′逋コ逕溘☆繧倶セ九r谺。縺ォ遉コ縺励∪縺吶�� 譌「蟄倥� .t 縺ォ縺�¥縺、縺九�繝�せ繝医r霑ス蜉�縺吶k繝代ャ繝√′謠仙�縺輔l縺セ縺励◆縲� 莉悶�菴輔↓繧ょスア髻ソ縺吶k蜿ッ閭ス諤ァ縺ッ縺ェ縺��縺ァ縲� 蠖ア髻ソ繧貞女縺代◆荳�縺、縺ョ .t 莉・荳翫r繝�せ繝医☆繧句ソ�ヲ√�縺ゅj縺セ縺帙s縲� 縺昴≧縺ァ縺吶�? 縺励°縺励���∽ソ。閠��繝。繝シ繝ォ繧「繝峨Ξ繧ケ縺悟燕蝗槭�騾∽ソ。譎ゅ°繧牙、画峩縺輔l縺ヲ縺�※縲� 縺薙�縺溘a縺ョ莉悶�繝�せ繝医′螟ア謨励☆繧九h縺�↓縺ェ繧翫∪縺励◆縲� 谺。縺ョ鬆�岼縺ョ繝�せ繝医ち繝シ繧イ繝�ヨ繧貞ョ溯。後☆繧九→縲√%縺ョ蝠城。後r謐輔∪縺医i繧後∪縺吶��

  • 螳悟�縺ェ繝�せ繝医せ繧、繝シ繝医r螳溯。後@縺ェ縺��エ蜷医〒繧ゅ�� 譛�菴� make test_porting 縺ッ螳溯。後@縺ヲ縺上□縺輔>縲� 縺薙l縺ッ蝓コ譛ャ逧�↑豁」豌励メ繧ァ繝�け繧貞ョ溯。後@縺セ縺吶�� 縺ゥ縺ョ豁」豌励メ繧ァ繝�け縺九r隕九k縺ォ縺ッ縲�t/porting 繧定ヲ九※縺上□縺輔>縲�

  • miniperl 繧� miniperl 縺ョ縺溘a縺ョ逡ー縺ェ繧九さ繝シ繝峨ヱ繧ケ繧呈戟縺、繧ウ繧「繝ォ繝シ繝√Φ縺ォ 蠖ア髻ソ縺吶k螟画峩繧定。後≧蝣エ蜷医��make minitest 繧偵☆繧九h縺�↓縺励※縺上□縺輔>縲� 縺薙l縺ッ縲}erl 縺ァ縺ッ縺ェ縺� miniperl 縺ァ繝�せ繝医�荳�驛ィ繧定。後≧縺溘a縺ォ螳悟�縺ェ 繝�せ繝医せ繧、繝シ繝医〒縺ッ謐墓拷縺ァ縺阪↑縺�撫鬘後b謐墓拷縺励∪縺吶��

On merging and rebasing

(繝槭�繧ク縺ィ繝ェ繝吶�繧ケ譎�)

'blead' 繝悶Λ繝ウ繝√↓繝励ャ繧キ繝・縺輔l縺溘�∝腰邏斐↑ 1 蝗樣剞繧翫�繧ウ繝溘ャ繝医�縲� 繧ッ繝ェ繝シ繝ウ縺ォ驕ゥ逕ィ縺輔l繧句腰邏斐↑繧ウ繝溘ャ繝医〒縺ゅk縺ケ縺阪〒縺吶�� 險�縺�鋤縺医k縺ィ縲∽ス懈・ュ縺励◆繧ゅ�縺ッ blead 縺ョ迴セ蝨ィ縺ョ菴咲スョ縺ォ蟇セ縺励※ 繧ウ繝溘ャ繝医☆繧九%縺ィ縺ァ縲√�繝シ繧ク縺吶k縺薙→縺ェ縺� master 縺ォ 繝励ャ繧キ繝・縺ァ縺阪k繧医≧縺ォ縺吶k縺ケ縺阪〒縺吶��

縺ゅ↑縺溘′螟画峩縺励◆繧ゅ�繧偵ン繝ォ繝峨@縺溘j繝�せ繝医@縺溘j縺励※縺�k髢薙↓縲� 譎ゅ�� blead 縺ッ蜍輔″縺セ縺吶�� 縺薙l縺瑚オキ縺阪k縺ィ縲√�繝�す繝・縺ッ谺。縺ョ繧医≧縺ェ繝。繝�そ繝シ繧ク縺ァ諡貞凄縺輔l縺セ縺�:

To ssh://perl5.git.perl.org/perl.git
 ! [rejected]        blead -> blead (non-fast-forward)
error: failed to push some refs to 'ssh://perl5.git.perl.org/perl.git'
To prevent you from losing history, non-fast-forward updates were
rejected Merge the remote changes (e.g. 'git pull') before pushing
again.  See the 'Note about fast-forwards' section of 'git push --help'
for details.

縺薙l縺瑚オキ縺阪◆蝣エ蜷医�∵ャ。縺ョ繧医≧縺ォ縺励※縲|lead 縺ョ譁ー縺励>菴咲スョ縺ォ蟇セ縺励※縺ゅ↑縺溘�菴懈・ュ繧� 蜊倥↓ 繝ェ繝吶�繧ケ 縺励∪縺� (master 繝ェ繝昴ず繝医Μ縺ォ蟇セ縺吶k縺ゅ↑縺溘�繝ェ繝「繝シ繝亥錐繧� "p5p" 縺ィ莉ョ螳壹@縺セ縺�):

% git fetch p5p
% git rebase p5p/blead

繧ウ繝溘ャ繝医′蜀埼←逕ィ縺輔l縲∝ョ牙�縺ォ繝励ャ繧キ繝・縺ァ縺阪k繧医≧縺ォ縺ェ繧翫∪縺吶�� 繝ェ繝吶�繧ケ縺ォ髢「縺吶k縺輔i縺ェ繧区ュ蝣ア縺ッ縲“it-rebase(1) 繧ウ繝槭Φ繝峨�譁�嶌縺ォ縺ゅj縺セ縺吶��

荳�邱偵↓縺吶k縺薙→縺ァ縺ョ縺ソ諢丞袖縺後≠繧九�√∪縺溘�髮�粋縺ョ逶ョ逧��隕∫エ�→縺励※縺ョ 萓。蛟、縺後≠繧九h縺�↑縲√h繧雁、ァ縺阪↑繧ウ繝溘ャ繝医�髮�粋縺ォ蟇セ縺励※縺ッ縲� 繝槭�繧ク繧ウ繝溘ャ繝医r菴ソ縺�∋縺阪〒縺吶�� 菴懈・ュ縺ッ 繝医ヴ繝�け繝悶Λ繝ウ繝� 縺ァ陦後≧縺ケ縺阪〒縺�; 縺昴@縺ヲ縲|lead 縺ョ遘サ蜍輔↓繧医▲縺ヲ縺ゅ↑縺溘�繧ウ繝シ繝峨′螢翫l縺ヲ縺�↑縺�%縺ィ繧� 遒コ隱阪☆繧九◆繧√↓螳壽悄逧�↓ blead 縺ォ蟇セ縺励※繝ェ繝吶�繧ケ縺吶k縺ケ縺阪〒縺吶�� 菴懈・ュ縺檎オゅo縺」縺溘i縲∵怙蠕後↓繝ェ繝吶�繧ケ縺励※繝�せ繝医@縺ヲ縺上□縺輔>縲� 邱壼ス「縺ョ螻・豁エ縺ッ blead 縺ォ繧ウ繝溘ャ繝医&繧後k蠎ヲ縺ォ螟ア繧上l縺セ縺吶′縲� 譛�蠕後�繝ェ繝吶�繧ケ縺ッ蜀阪�螻・豁エ繧堤キ壼ス「縺ォ縺励�� 蟆�擂縺ョ菫晏ョ郁��′菴輔′襍キ縺阪◆縺ョ縺九r隕九k縺ョ繧偵h繧雁ョケ譏薙↓縺励∪縺吶�� 谺。縺ョ繧医≧縺ォ縺励※繝ェ繝吶�繧ケ縺励∪縺� (縺ゅ↑縺溘�菴懈・ュ縺� committer/somework 繝悶Λ繝ウ繝√↓縺ゅk縺ィ莉ョ螳壹@縺セ縺�):

% git checkout committer/somework
% git rebase blead

縺昴l縺九i谺。縺ョ繧医≧縺ォ縺励※ master 縺ォ繝槭�繧ク縺ァ縺阪∪縺�:

% git checkout blead
% git merge --no-ff --no-commit committer/somework
% git commit -a

蜑崎ソー縺ョ繧ケ繧、繝�メ縺ッ隱ャ譏弱′蠢�ヲ√〒縺励g縺��� --no-ff 縺ッ縲√◆縺ィ縺医≠縺ェ縺溘�菴懈・ュ縺� blead 縺ォ蟇セ縺励※邱壼ス「縺ォ驕ゥ逕ィ蜿ッ閭ス縺ァ繧ゅ�� 繝槭�繧ク繧ウ繝溘ャ繝医′貅門y縺輔l繧九%縺ィ繧堤、コ縺励∪縺吶�� 縺薙l縺ォ繧医j縺ゅ↑縺溘�菴懈・ュ縺ッ蛛エ驕薙�繝悶Λ繝ウ繝√→縺励※陦ィ遉コ縺輔l縲� 縺昴�繧ウ繝溘ャ繝医�繝槭�繧ク繧ウ繝溘ャ繝医↓繧医▲縺ヲ繝。繧、繝ウ縺ョ blead 縺ォ 繝槭�繧ク縺輔l繧九%縺ィ縺ォ縺ェ繧翫∪縺吶��

--no-commit 縺ッ縲√�繝シ繧ク繧ウ繝溘ャ繝医� 貅門y 縺ッ縺輔l縺セ縺吶′ 繧ウ繝溘ャ繝� 縺ッ縺輔l縺ェ縺�%縺ィ繧呈э蜻ウ縺励∪縺吶�� 繧ウ繝溘ャ繝医�螳滄圀縺ォ縺ッ谺。縺ョ繧ウ繝槭Φ繝峨r螳溯。後@縺ヲ縲� 繧ウ繝溘ャ繝医�隱ャ譏弱�縺溘a縺ォ繧ィ繝�ぅ繧ソ縺瑚オキ蜍輔@縺溷セ後↓螳溯。後&繧後∪縺吶�� --no-commit 縺ェ縺励�蝣エ蜷医�� 譛臥畑縺ェ繝。繝�そ繝シ繧ク縺ェ縺励〒繧ウ繝溘ャ繝医′陦後o繧後∪縺�; 縺薙l縺ッ菴懈・ュ縺ョ隱ャ譏弱�縺溘a縺ョ繝励Ξ繝シ繧ケ繝帙Ν繝�縺ィ縺励※繝槭�繧ク繧ウ繝溘ャ繝医�萓。蛟、繧� 螟ァ蟷�↓貂帙i縺励※縺励∪縺�∪縺吶��

繝槭�繧ク繧ウ繝溘ャ繝医�隱ャ譏弱r譖ク縺上→縺阪�� 縺薙�繝悶Λ繝ウ繝√�逶ョ逧�r隱ャ譏弱@縺ヲ縺上□縺輔>; 縺昴@縺ヲ縺薙�隱ャ譏弱�縺翫◎繧峨¥谺。縺ョ perldelta 譁�嶌繧偵Ξ繝薙Η繝シ縺吶k縺ィ縺阪↓ 譛�邨ら噪縺ェ繝ェ繝ェ繝シ繧ケ繧ィ繝ウ繧ク繝九い縺ォ繧医▲縺ヲ菴ソ繧上l繧九□繧阪≧縺ィ縺�≧縺薙→繧� 蠢�↓逡吶a縺ヲ縺翫>縺ヲ縺上□縺輔>縲�

Committing to maintenance versions

(繝。繝ウ繝�リ繝ウ繧ケ繝舌�繧ク繝ァ繝ウ縺ォ繧ウ繝溘ャ繝医☆繧�)

繝。繝ウ繝�リ繝ウ繧ケ繝舌�繧ク繝ァ繝ウ縺ッ縲�㍾隕√↑繝舌げ菫ョ豁」繧定ソス蜉�縺吶k蝣エ蜷医↓縺ョ縺ソ螟画峩縺励※縺上□縺輔>; perlpolicy 繧貞盾辣ァ縺励※縺上□縺輔>縲�

perl 縺ョ繝。繝ウ繝�リ繝ウ繧ケ繝舌�繧ク繝ァ繝ウ縺ォ繧ウ繝溘ャ繝医☆繧九↓縺ッ縲� 繝ュ繝シ繧ォ繝ォ霑ス霍。繝悶Λ繝ウ繝√r菴懈�縺吶k蠢�ヲ√′縺ゅj縺セ縺吶��

% git checkout --track -b maint-5.005 origin/maint-5.005

縺薙l縺ォ繧医j縲√Μ繝「繝シ繝医ヶ繝ゥ繝ウ繝� origin/maint-5.005 繧定ソス霍。縺吶k maint-5.005 縺ィ縺�≧蜷榊燕縺ョ繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√′菴懈�縺輔l縺セ縺吶�� 谺。縺ォ縲∽サ・蜑阪→蜷後§繧医≧縺ォ繝励Ν縲√さ繝溘ャ繝医�√�繝シ繧ク縲√�繝�す繝・繧定。後≧縺薙→縺後〒縺阪∪縺吶��

git cherry-pick 繧ウ繝槭Φ繝峨r菴ソ逕ィ縺励※縲|lead 縺ィ蛻・縺ョ繝悶Λ繝ウ繝√°繧� 繧ウ繝溘ャ繝医r繝√ぉ繝ェ繝シ繝斐ャ繧ッ縺吶k縺薙→繧ゅ〒縺阪∪縺吶�� 蜈��繧ウ繝溘ャ繝医� SHA1 繧呈眠縺励>繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク縺ォ險倬鹸縺吶k縺溘a縺ォ縲� git cherry-pick 縺ォ -x 繧ェ繝励す繝ァ繝ウ繧剃スソ縺�%縺ィ繧貞匡繧√∪縺吶��

maint 迚医↓菴輔°繧偵�繝�す繝・縺吶k蜑阪↓縲∝燕霑ー縺ョ "Committing to blead" 縺ョ繧ケ繝�ャ繝励r貅�縺溘@縺ヲ縺�k縺薙→繧堤「コ隱阪@縺ヲ縺上□縺輔>縲�

Merging from a branch via GitHub

(GitHub 邨檎罰縺ョ繝悶Λ繝ウ繝√r繝槭�繧ク縺吶k)

遘√◆縺。縺ッ繝代ャ繝√r GitHub 邨檎罰縺ァ謚慕ィソ縺吶k縺薙→繧貞匡繧√※縺�∪縺帙s縺後�� 螳滄圀逋コ逕溘@縺セ縺吶�� 縺薙l縺ッ GitHub 繝ェ繝昴ず繝医Μ縺九i縺ョ繝代ャ繝√r繝槭�繧ク縺吶k縺溘a縺ョ繧ャ繧、繝峨〒縺吶��

% git remote add avar git://github.com/avar/perl.git
% git fetch avar

縺薙l縺ァ縲√◎縺ョ繝悶Λ繝ウ繝√→ blead 縺ョ蟾ョ蛻�r隕九i繧後k繧医≧縺ォ縺ェ繧翫∪縺励◆:

% git diff avar/orange

縺昴@縺ヲ繧ウ繝溘ャ繝医r陦ィ遉コ縺ァ縺阪∪縺�:

% git log avar/orange

迚ケ螳壹�繧ウ繝溘ャ繝医r謇ソ隱阪☆繧句�エ蜷医�縲∵ャ。縺ョ繧医≧縺ォ縺励※驕ク謚槭〒縺阪∪縺�:

% git cherry-pick 0c24b290ae02b2ab3304f51d5e11e85eb3659eae

縺セ縺溘�縲∝ソ�ヲ√↓蠢懊§縺ヲ繝悶Λ繝ウ繝∝�菴薙r繝槭�繧ク縺吶k縺薙→繧ゅ〒縺阪∪縺�:

% git merge avar/orange

縺昴@縺ヲ縲√Μ繝昴ず繝医Μ縺ォ繝励ャ繧キ繝・繝舌ャ繧ッ縺励∪縺�:

% git push origin blead

Using a smoke-me branch to test changes

(螟画峩繧偵ユ繧ケ繝医☆繧九◆繧√↓ smoke-me 繝悶Λ繝ウ繝√r菴ソ縺�)

譎ゅ���√≠繧句、画峩縺後≠縺ェ縺溘′逶エ謗・蛻ゥ逕ィ縺ァ縺阪↑縺� OS 縺ォ髢「縺吶k繝�せ繝医〒縺阪↑縺� 繧ウ繝シ繝峨ヱ繧ケ縺ォ蠖ア髻ソ縺吶k縺薙→縺後≠繧九�縺ァ縲� blead 縺ォ繧ウ繝溘ャ繝医☆繧句燕縺ォ莉悶� OS 縺ョ繝ヲ繝シ繧カ繝シ縺悟、画峩繧偵ユ繧ケ繝医@縺ヲ繧ゅi縺��縺� 雉「譏弱〒縺吶��

蟷ク縺��∵ァ倥��↑ OS 縺ァ縺ゅ↑縺溘�螟画峩繧偵せ繝「繝シ繧ッ繝�せ繝医☆繧区婿豕輔′縺ゅj縺セ縺�: 縺薙l繧� "smoke-me" 繝悶Λ繝ウ繝√→縺励※繝励ャ繧キ繝・縺励※縲√>縺上▽縺九�閾ェ蜍� smoke-testers 縺悟スシ繧峨� OS 縺九i縺ョ邨先棡繧貞�ア蜻翫☆繧九�繧貞セ�■縺セ縺吶�� "smoke-me" 繝悶Λ繝ウ繝√�繝悶Λ繝ウ繝∝錐縺ォ繧医▲縺ヲ隴伜挨縺輔l縺セ縺�: 迚ケ縺ォ縲}erl5.git.perl.org 縺ァ隕九i繧後k繧医≧縺ォ縲∝錐蜑阪�譛�蛻昴�驛ィ蛻�′豁」遒コ縺ォ smoke-me 縺ァ縺ゅk繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√〒縺ェ縺代l縺ー縺ェ繧翫∪縺帙s縲�

縺薙l繧偵☆繧九◆繧√�謇矩���螟ァ縺セ縺九↓谺。縺ョ繧医≧縺ェ繧ゅ�縺ァ縺� (tonyc 縺ォ繧医k win32stat 縺ィ蜻シ縺ー繧後k smoke-me 繝悶Λ繝ウ繝√�萓九r菴ソ縺�∪縺�):

縺セ縺壹�√Ο繝シ繧ォ繝ォ繝悶Λ繝ウ繝√r菴懊▲縺ヲ縺昴l縺ォ蛻�j譖ソ縺医∪縺�:

% git checkout -b win32stat

螟画峩繧定。後>縲}erl 繧偵ン繝ォ繝峨@縺ヲ螟画峩繧偵ユ繧ケ繝医@縲√Ο繝シ繧ォ繝ォ繝悶Λ繝ウ繝√↓ 繧ウ繝溘ャ繝医@縺セ縺吶�� 縺昴l縺九i繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√r繝ェ繝「繝シ繝医� smoke-me 繝悶Λ繝ウ繝√↓繝励ャ繧キ繝・縺励∪縺�:

% git push origin win32stat:smoke-me/tonyc/win32stat

縺薙%縺ァ繝ュ繝シ繧ォ繝ォ縺ョ blead 縺ォ謌サ縺励∪縺�:

% git checkout blead

縺昴@縺ヲ莉悶�菴懈・ュ繧偵@縺ヲ謨ー譌・蠕�■縲《moke-me 繝悶Λ繝ウ繝√↓蟇セ縺吶k蝣ア蜻翫&繧後k邨先棡 http://perl.develop-help.com/?b=smoke-me/tonyc/win32state 繧呈ウィ隕悶@縺セ縺吶��

蜈ィ縺ヲ縺後≧縺セ縺上>縺」縺ヲ縺�l縺ー縲∵焔蜈�� blead 繝悶Λ繝ウ繝√r譖エ譁ー縺励∪縺�:

% git pull

縺昴l縺九i繧ゅ≧荳�蠎ヲ謇句�縺ョ smoke-me 繝悶Λ繝ウ繝√r繝√ぉ繝�け繧「繧ヲ繝医@縺ヲ縲� 縺昴l繧� blead 縺ォ繝ェ繝吶�繧ケ縺励∪縺�:

% git rebase blead win32stat

縺薙%縺ァ blead 縺ォ謌サ縺励※縲《moke-me 繝悶Λ繝ウ繝√r繝槭�繧ク縺励∪縺�:

% git checkout blead
% git merge win32stat

蜑崎ソー縺励◆繧医≧縺ォ縲《moke-me 繝悶Λ繝ウ繝√↓螟壹¥縺ョ螟画峩縺後≠繧句�エ蜷医�縲� 蜑崎ソー縺ョ譛�蠕後�繧ウ繝槭Φ繝峨�莉」繧上j縺ォ谺。縺ョ繧ウ繝槭Φ繝峨r菴ソ縺�%縺ィ縺ァ縲� 縺薙l繧峨�螟画峩縺ョ讎りヲ√r險倬鹸縺吶k縺溘a縺ョ繝槭�繧ク繧ウ繝溘ャ繝医r貅門y縺吶k縺ケ縺阪〒縺�:

% git merge win32stat --no-ff --no-commit

縺薙%縺ァ perl 繧偵ン繝ォ繝峨@縺ヲ縲√>縺、繧ゅ�繧医≧縺ォ螟画峩繧偵�繝�す繝・縺吶k蜑阪↓縲� 縺ゅ↑縺溘�(繝槭�繧ク縺輔l縺�)螟画峩繧呈怙蠕後↓繧ゅ≧荳�蠎ヲ繝�せ繝医☆繧九∋縺阪〒縺� (逅�Φ逧�↓縺ッ縲√ユ繧ケ繝医せ繧、繝シ繝亥�菴薙r螳溯。後@縺セ縺�; 縺励°縺励�� 蟆代↑縺上→繧� t/porting/*.t 繝�せ繝医r螳溯。後@縺セ縺�) 縲�

% git push origin blead

譛�蠕後↓縲√Μ繝「繝シ繝医� smoke-me 繝悶Λ繝ウ繝√r蜑企勁縺励※:

% git push origin :smoke-me/tonyc/win32stat

(縺薙l縺ッ縺翫◎繧峨¥谺。縺ョ繧医≧縺ェ隴ヲ蜻翫r蜃コ縺励∪縺吶′縲∫┌隕悶〒縺阪∪縺�:

remote: fatal: ambiguous argument
                                 'refs/heads/smoke-me/tonyc/win32stat':
unknown revision or path not in the working tree.
remote: Use '--' to separate paths from revisions

) 縺昴@縺ヲ繝ュ繝シ繧ォ繝ォ繝悶Λ繝ウ繝√r蜑企勁縺励∪縺�:

% git branch -d win32stat

A note on camel and dromedary

(camel 縺ィ dromedary 縺ォ髢「縺吶k豕ィ諢�)

繧ウ繝溘ャ繧ソ縺ッ縲�perl5.git.perl.org 縺ォ繧オ繝シ繝薙せ繧呈署萓帙☆繧倶コ後▽縺ョ 繧オ繝シ繝舌↓繧「繧ッ繧サ繧ケ縺ァ縺阪∪縺吶�� perl5.git.perl.org 閾ェ霄ォ (camel) 縺ァ縲� 縺薙l縺後�後�繧ケ繧ソ繝シ縲阪Μ繝昴ず繝医Μ縺ァ縺吶�� 莠後▽逶ョ縺ッ users.perl5.git.perl.org (dromedary) 縺ァ縲� 荳�闊ャ逧�↑繝�せ繝医→髢狗匱縺ォ菴ソ逕ィ縺ァ縺阪∪縺吶�� dromedary 縺ッ謨ー蛻�#縺ィ縺ォ camel 縺九i git 繝�Μ繝シ繧貞酔譛溘☆繧九�縺ァ縲√◎縺薙↓ 繝励ャ繧キ繝・縺励※縺ッ縺�¢縺セ縺帙s縲� 荳。譁ケ縺ョ繝槭す繝ウ縺ォ縺ッ /srv/CPAN 縺ォ螳悟�縺ェ CPAN 繝溘Λ繝シ繧ゅ≠繧九�縺ァ縲� 縺薙l繧剃スソ縺」縺ヲ縺上□縺輔>縲� dromedary 縺ッ繝輔ぃ繧、繝ォ繧剃ク�闊ャ蜈ャ髢九☆繧九◆繧√↓縲� ~/public_html/ 繧� http://users.perl5.git.perl.org/~yourlogin/ 縺ィ縺励※謠蝉セ帙@縺ヲ縺�∪縺吶��

縺薙l繧峨�繝帙せ繝医�縲∝、夜Κ縺ォ蟇セ縺励※縺九↑繧雁宍譬シ縺ェ繝輔ぃ繧、繧「繧ヲ繧ゥ繝シ繝ォ繧呈戟縺」縺ヲ縺�∪縺吶�� 騾∽ソ。縺ッ rsync縲《sh縲“it 縺�縺代′險ア蜿ッ縺輔l縺ヲ縺�∪縺吶�� http 縺ィ ftp 縺ォ蟇セ縺励※縺ッ縲√�繝ュ繧ュ繧キ縺ィ縺励※ http://webproxy:3128 繧� 菴ソ逕ィ縺ァ縺阪∪縺吶�� 蜿嶺ソ。縺ッ縲√ヵ繧。繧、繧「繧ヲ繧ゥ繝シ繝ォ縺ッ謾サ謦�r讀懷�縺励�∫桝繧上@縺�い繧ッ繝�ぅ繝薙ユ繧」繧呈戟縺、 IP 繧「繝峨Ξ繧ケ繧偵ヶ繝ュ繝�け縺励h縺�→縺励∪縺吶�� 縺薙l縺ッ譎ゅ↓(髱槫クク縺ォ縺セ繧後↓)隱、讀懷�縺後≠繧翫�√ヶ繝ュ繝�け縺輔l繧句庄閭ス諤ァ縺後≠繧翫∪縺吶�� 繝悶Ο繝�け繧定ァ」髯、縺吶k譛�繧らー。蜊倥↑譁ケ豕輔�縲∫ョ。逅���↓騾夂衍縺吶k縺薙→縺ァ縺吶��

縺薙l繧我コ後▽縺ョ繝懊ャ繧ッ繧ケ縺ッ縲|ooking.com 縺ォ繧医▲縺ヲ謇�譛峨&繧後�√�繧ケ繝医&繧後�� 驕句霧縺輔l縺ヲ縺�∪縺吶�� 繧キ繧ケ繝�Β邂。逅���↓縺ッ縲(rc.perl.org 縺ョ #p5p 縺九�� perl5-porters@perl.org 縺ク縺ョ繝。繝シ繝ォ縺ァ 騾」邨。縺ァ縺阪∪縺吶��