Git(ã®ãã)åå¼·ä¼ã¡ã¢
ãããã«éçºè
ã¯ç確ãªè§£èª¬ã¨ã質åã«ããºããºãçããã®ã ãªãã
Gitã®ã¡ã³ãããæ¥æ¬äººã®æ¹ã ã£ãã¨ããã®ã¯ãä»åã¯ããã¦ç¥ãã¾ããã
ãã¬ã¼ã³è³æã«ã¤ãã¦ã¯ãã¢ã¡ãªã«ã«å¸°ããããWebã§å
¬éãããã¨ãããã¨ã§ããããPDFã§åãã¦ããã£ãã®ã§ããå¸æã®æ¹ãããã°éãã¾ããä¸èº«ã¯è±èªã§ãã(^^;ã
# ãã£ããã¢ãããã¼ããããããã§ããhttp://www.kernel.org/~junio/200810-tut.pdf
ã¨ããããã§ãtwiterã§ã¡ã¢ãæµãã¦ãããã©ãéä¸ã§æ«æããã®ã§ãæå
ã®ã¡ã¢ãè²¼ã£ã¦ããã¾ãã
ééãããã£ããææãã¦ãã
èªåç¨ã¡ã¢ãªã®ã§ãæå³ä¸æãªã¨ãã¯ãåå¼ãã
gitã®ãããã¤ã®ãªã¹è±èªã§ãããªãã¤ãã
kernel bitkeeperåç¨ã®ãã¼ã¸ã§ã³ç®¡çã·ã¹ãã ã使ã£ã¦ããã
æ¹éãããã£ã¦ãç¡æã§ä½¿ããªããªã£ã¦ãã¾ã£ãã
svnã使ãã®ï¼cvsã使ãã®ï¼ä½¿ãç©ã«ãªããªãã¨ããã³ã¡ã³ãã
2W linusãä¼æã
20050407ã«ãªãªã¼ã¹ã
ããã¯é¢ç½ãã¨ãã£ã¦ãã¡ãã¡ããåå ããã£ãã
kernelã®äººã¨ã¯ä½ã®ã¤ãããããªãã£ãããããã¸ã§ã¯ãã«åå ããã
ï¼æãããã«ã¯ããªã使ãç©ã«ãªãã³ã¼ãã«ãªã£ããååãããã¯linusã§ãååãããã¯è¬æ¼è
ã
kernelã«æ»ãããããã¨ã¯å¼ãç¶ãã§ããããã¨è¨ããã¦ãã£ã¦ããã
Wine, X.org, OLPC, Sambaãªã©ã§æ¡ç¨ãã¦ããã
RoRã§Rubyç³»ã®äººãä»å¹´å¢ããã
gitã¯ã大ããªã·ã¹ãã ã
ã³ãã³ãã150ãã¾ããããå
¨é¨manãããã
çæ´»ã«å¿
è¦ãªã³ãã³ãã¯20ãããã
ããã ã¢ããã§ä½æããã®ã§ãå°ããªãã©ãã©ã®ã³ãã³ããçµã¿åããããã¦ããã
checkinã®ããã®ç´°ããã³ãã³ããã¨ã³ãã¦ã¼ã¶ã¼ã«è¦ããããã«ãªã£ã¦ããã
大æ¹ã®ã³ãã³ãã¯èããªãã¦ãããã
æ¦å¿µã
åºæ¬ã¯ã³ã³ãã³ãããªãã¸ã§ã¯ããã¼ã¿ãã¼ã¹ã«å
¥ããã
è¨é²å
容ã®ããã·ã¥å¤ãè¨é²ãã¦ã³ãªã¸ã§ã³ãèµ·ãããªããã¨ãåæã
èµ·ããããã®æèããã
ããã·ã¥ãéãã¨ããã®ã¨ãã®ãã¡ã¤ã«ãè¿ãã¦ãããã
ã©ãã«ä½ãããããè¨é²ãã¦ãããªãã¨ãããªãã
treeããã¡ã¤ã«ã®æ§é ã¨blob(SHA-1ã§ã®ããã·ã¥å¤)ã®å¯¾å¿è¡¨ã
ãã®å¯¾å¿è¡¨ãhashå¤ãæã¤ã
ï¼ã¤ã®ããã¸ã§ã¯ãã®å
容ãåä¸ã®ããã·ã¥å¤ã§160bitã§ç®¡çãããã
ããã«ãä¸ã®ã¬ã¤ã¤ã¼commitãtreeã®ã¡ã¿ãã¼ã¿ã¨ãã¦ã人ã¨ãã¤ãã³ã¡ã³ããè¨é²ããã
ããã«ä¸ãå¥ã®treeãä½ãã
åã®ç¶æ
ãæ´å²æ
å ±ã¨ãã¦ããã¯ãã¤ã³ã¿ã§ãã¨ã®ãªãã¸ã§ã¯ããæå®ããã¡ã¿ãã¼ã¿ãæã¤ã
ãã¼ã¸ã§ã³éã®å¤é·ãè¨é²ã
Blob, tree, commit, repository
ææ°ã®ç¶æ
ã«ã¤ãã¦ã®ãã¤ã³ã¿ãcommitãªãã¸ã§ã¯ãã«ä»ãã¦ããã
æ´å²ã¯ä¸ç´ç·ã§ã¯ãªãã
æ´å²ã«è¤æ°ã®å
端ãã§ããã
åæ£ã§éçºãããã
çºæ£ããªãããã«ãããç¨åº¦ã®ã¨ããã§ãã¼ã¸ãã¦åæããã
å¤é·ã¨è¦ªåé¢ä¿ãè¨é²ãã¦ãæ´å²ãã®ã°ãã¦è¡ãã
åã®ç¶æ
ãæ¯ãè¿ã£ã¦ã¿ããã¨ããéã«ãã©ãã°å¤æ´ã®çç±ãè¦ããã¨ãã§ããã
ä¸ã¶æåã®èªåã¯èªåã§ã¯ãªãããã
æ´å²ã®å
é ã«ããã³ãããã¯HEADã¨å¼ã°ããã
ã¹ãã¼ã¸ã³ã°ã¨ãªã¢ãHEADã¨Work treeã®ä¸éã§ãããã¡ã¨ãã¦indexãããã
ãã§ãã¯ã¢ã¦ãå¾ãwork treeå¤æ´ãå¤æ´ãindexã«æ»ãã
indexã¸ã®æ¸ãæ»ãã¯ç´ããé¨åããã¨ã«treeãä½ã£ã¦ããããã¤ã³ã¿ãä»ãæ¿ãHEADã«ãã³ãããã
ãããã¡ã¨ãªã¢ã¯ãªãã§å¿
è¦ï¼
cvsãsvnã«ã¯æ¦å¿µã¯ãªãã
ãã¼ã¸ã§ã³ç®¡çããã¦ãããã¡ã¤ã«ã¨ãããã§ãªããã¡ã¤ã«ãããã
ä¸éçãªã³ã³ãã¤ã«çµæãªã©ç®¡çããã¦ãªãã
管çãã¦ãããã¡ã¤ã«ã®ãªã¹ãã¯ãã¼ã¸ã§ã³ç®¡çã·ã¹ãã ãæã£ã¦ããã
ãã¡ã¤ã«åã ãã§å
容ã¯è¨é²ããã¦ããªãã
ååã ãã§ãªã¯ãªãå
容ã¾ã§æ¸ãã¦ãã¾ããã-> indexã
ãã®ãã¡ã¤ã«ãä»ã¯ããããå
容ã ã¨ãããã¨ãè¨é²ãããã¡ã¤ã«ã
ãããã¯ãã«å
¥ããããªãããéçºã«ä½¿ã£ã¦ãããã¡ã¤ã«ã
ã³ãããããåã ãindexã«å
¥ããã
ããã¾ã§ã¯ãå
é ã¨ã®diffããè¦ããªãã
å¤æ´ãã¦ããã¨ãèªåã®ãã£ãå¤æ´ããã¾ãã
ãããã¡ã¨ãªã¢ã«å
¥ã£ããã®ã¯ãdiffã§åºã¦ããªãã®ã§ããã©ã¼ã«ã¹ãã¦ããé¨åã ãã®diffãè¦ããã¨ãã§ããã
index-HEADã®å¤æ´ãåæ§ã«ç®¡çã§ãããå
¨ä½ãã©ãããã£ãã®ãããããã§ããã
ãããã¿ã«ä¸å¯§ã«éçºã§ããã
åæ£ç®¡çã
ãã§ãã¯ã¢ã¦ãããå
ã¨åãã³ãã¼ãå
¨é¨ãã¼ã«ã«ã«æã£ã¦ããã
å±¥æ´æ
å ±ãå«ãã¦ã
ä¸åº¦cloneãã¦ããããæå
ã®ç°å¢ã§ããã³ãããã¯èµ·ãããªãã
ãããªãã·ã¥ããªãã¨å¤§æ¬ã«ãã¼ã¸ã¯ãããªãã
ãã¾ãè¡ãããã ããã¨å°ãã¥ã¤ã³ããããã¦ããããææ»ããã¦ãããã¾ã§ã®ãã®ãç ´æ£ããªããã°ãããªããã¨ãããã
èªåã®æå
ã§fixããã¾ã§ã¯äººã«è¦ããªããå®ç§ãªçµæããã¼ã¸ã§ããã
git clone git://.... my-git
cd my-git
edit README
git add -p
add å¤æ´ã次ã®ã³ãããã«å
¥ãã ã
- a ã¯ããªã¼å ¨é¨ã
- pã¯ç´°ããã¬ãã«ï¼å·®åã表示ãã¦å ¥ããé¨åãã¤ã³ã¿ã©ã¯ãã£ãã«ã»ãããã®ã ããããã¡ã¨ãªã¢ã«å ¥ããã
ãã¡ã¤ã«åã§ããããpatchå½¢å¼ã®pãpatchã®åºã¾ããã¨ã«y/nã§æ±ºããããã
git diff
git diff --cachedããã¾ã¾ã§ã«ã³ãããã«å
¥ããã¨è¡ã£ããããã表示ã
git commit -a
git diff --color-wordsãåèªåä½ã®éããè¦ãã¦ããããpatchã³ãã³ãã§ã¯ä½¿ããªããã
git stash
æ¥æ¬ãããã£ã¦ããããããæè¿è¿½å ã
ããç´ããä»ç´ãã¨ãã¹ãè¨ãã
ä¸æãããã¨éãäºããã¨æèã®æµããæ¢ã¾ããç¶ããããªãã
git stash saveã¨ãããã¨ãä»ã®ç¶æ
ãä¿ç®¡ããã
å·»ãæ»ããã¦æåãããã¹ã®å¤æ´ã ããã£ã¦ãã³ããããã¦ãã¾ãã
ãã®å¾ã§ãgit stash applyã§ä¿ç®¡ããçµæãæ»ãã¦ä½æ¥ãã§ããã
tarã§ä¿ç®¡ããã®ã¨éã£ã¦ãéãªãå¤æ´ç¹ã¯3 way margeãããã
ãã¹ã®å¤æ´ãåæ ãããä¸ã§ãéä¸ã®ä½æ¥ã«æ»ããã
git stash save --keep-index
ä¸ã¶æãããåã«ã¤ãã£ãã
ä¸æããæã«ã©ãããã¨ããstashããã
ãããã°ç¨ã®ã³ã¼ããªã©ã
indexããã³ãããããã¨ããã®ã¯ãå®ç¨ä¸ããã§ããã®ãã¨ããå ´é¢ããªãããã§ã¯ãªãã
ãããã°ã³ã¼ããã¿ã¤ãã³ã°ãå¤ãã¦ãããããªãã¨ãããããã
ã³ãããåã«æå¾ã«ãã¹ããããã
keep-indexããã¨ãã³ããããããã¨ãã¦ãããã®ã ãã©å
¥ãã¦ããããã°ã³ã¼ããªã©ã¯æ¨ã¦ãç¶æ
ãã§ããã
ããã§ãã¹ããã¦èªä¿¡ãæã£ã¦ã³ãããããã
ãããã°ç¨ã®å¤æ´ã便å©ãªã®ã§å¾ã
使ããããstash applyããã¨ãããã°ã³ã¼ããæ»ãã
ãã¤ã人ãæ¸ããã
è³æãå¸æãã¦ã¿ãã
ã¢ã¡ãªã«ã®å¸°ã£ããWebã«ä¸ããã¨ã®ãã¨ã
USBã¡ã¢ãªã§å覧ãã¦ããã£ãã
git rebase --interactive
gitã¯ãããã£ã¨ãã£ã¦å¤±æã人ã«ã¿ããªãã¦ããããã¼ã«ã
A->B->C->D
Bã§typoããã£ãã
$edit
$ git commit -m Typofix
A->B->C->D->E
$ git rebase -i HEAD~4
HEADããï¼ã¤åããå
ãå
¨é¨æ¸ãæããã
åºã¦ãããªã¹ããç·¨éãã¦é çªãå
¥ãæ¿ããã
squash -hash- Typofix
ããã¾ã§ã®å¤æ´ãåæ§ç¯ãã¦ãããã
A->B'->C'->D'ã«ãªãã
ãããã³ãããããã°ããã
æç³»åã§åé¡ç¹ãæ´ãåºãã«ã¯ããããããªãå¤æ´ã«ããææ»ãç¹ãè¨é²ããæå³ã¯ãªãã
ããããã¯ãã¿ããªã§åæ£éçºãã話ã
cloneãããå
ã§ãå¤æ´ããããèªåã§ãå¤æ´ããã¦ããã
fetchã§ãªãªã¸ãã«ã®å¤æ´ãã³ãã¼ãã¦ããã
maegeãã¦ãèªåã®HEADã¨ãªãªã¸ãã«ã®HEADããããã¦æ°ããHEADãä½ãã
ãªãªã¸ãã«ã®äººã¯ã¯çµéãããããªããpushãã¦èªåã®å±¥æ´ãéãã
ï¼äººãªãããããè¤æ°äººã§ã¯ä½¿ããªãã
ã»ã³ãã©ã«ãªãã¸ããªãç¨æãã¦ãçããã¨åæããã
ã»ã³ãã©ã«ãªãã¸ããªãæããã«ããæ¹æ³ã
ã©ã®ãããªã¿ã¤ãã³ã°ã§èª°ãæ´å²ãã©ãã«ã³ãã¼ããããéãã
linux kernelã§ä½¿ããã¦ããã
æ°ããããããåãåãå´ãè½åçã«åãã«è¡ãã
ã³ããã¿ããã¼ã¸ãããã
ããã¸ã§ã¯ãã®æ§æ ¼ã«ãã£ã¦éç¨ãå¤ããããã
gitãã®ãã®ã®éçºã
NotePCã¨DesktopPCãã©ã¡ããã¡ã¤ã³ãåæããã
linux kernelãèªåã®ä½æ¥ãªãã¸ããªã¨ããããªãã¯ãªãã¸ããªãä½ãã
ãããªãã¯å士ã§ç¸äºã«push/pullããã
ï¼ã¤ã®å´é¢ã
æ»ããã©ããã¦æ»ãããã
æ´å²ãã»ãããè¿ãã®ã¯éè¦ãªãã¨ã
gitK, git-logãã³ãããéã®è¦ªåé¢ä¿ãç·ã®è²ã¯æå³ããªããåºå¥ããããã ãã
git bisect
ã©ãã§ããã°ã©ã ãå£ããã®ããè¦ã¤ããã³ãã³ãã
ï¼ã¤ããå£ãã¦ããªãç¶æ
ãåæã
git bisect run
ã¹ã¯ãªãããé£ããã¦ããã¨ã³ã¼ãä¸ã®ãã¹ãã¹ã¤ã¼ããèªåå®è¡ãçµæã確èªãã¦ããã
ï¼å¹´åãããåã«ã§ããã
git blame (cvsã®anotateã®ãã¨)
ããããã®è¡ã«ã¤ãã¦ãã©ã®ãã¼ã¸ã§ã³ã§è¿½å ãããã®ããããã
ã³ã¡ã³ããã³ããã¿ãã
1.3ãããã§ä½¿ãç©ã«ãªãããã«ãªã£ãã
ãã®ãããã¯æ®éã«ã©ããã§ããã
ãã¡ã¤ã«ãã¹ãå¤æ´ãããå ´åã追跡ã§ããã
gitã§ã¯ããã¡ã¤ã«ã¨é
ç½®æ
å ±ãå¥ã
ã«ç®¡çããã¦ããã®ã§ããªãªã¸ãã«ã®ãã¡ã¤ã«ã追ããã
git blame -M lib/xyzzy.c
ãã¡ã¤ã«å
ã§é¢æ°ã®åå¾ãå
¥ãæ¿ãã£ãå ´åã§ã追ããã
å
¨ä½ãdiffããã¨ãããã©ããããã¨ã«ãªãã
ã³ã¼ãã®é¨åãåããé¨åã追ããã
CPUãªã½ã¼ã¹ãé£ãã®ã§ããªãã·ã§ã³ãä»ãããã¦ããã
git blame -C lib/xyzzy.c
ï¼ã¤ã®ãã¡ã¤ã«ãè¤æ°ã®èµ·æºãæã£ã¦ãããããªå ´åã«ã対å¿ã§ããã
ãã¡ãããªã½ã¼ã¹é£ããªã®ã§ãªãã·ã§ã³ã
cvsã¯ã©ã¤ã¢ã³ãã対å¿ã§ããªããã¨ãããã®ã§ããªãã·ã§ã³ã«ãªã£ã¦ããã
URLãªã©ã
ãããããã¢ã
gitã¯ãã³ãããã¯çããããã¨ãã§ããã®ãçå¾ã®æ¨©å©ã¨èããã
ä¼éãã¦ã¢ããã¹ããªã¼ã ã«æã£ã¦è¡ãæ段ã¯ããããããã
git checkout -b bia8236 master
ãã©ã³ããä½ãã®ããã§ãã¯ã¢ã¦ãã
ç·¨éã
git diff ã§å¤æ´ç¹ãã§ãã
ã³ãããããã
git commit -a -s -v
- s ãµã¤ã³ãªããèªåãèä½æ¨©ãããã¨ããç½²åã
- v diffãããä¸åº¦ç¢ºèªã§ããã
ã¨ãã£ã¿ãèµ·åãã¦diffãåºãã
ã³ã¡ã³ããã¯ããã®ã»ãã®è¡ã«æ¸ãè¾¼ãã
git show
ã³ãããã®å
容ãè¦ããã
git grep -n -e VIA --and -e '823[56]'ã¨ã
git grep -n -e 'VIA823[56]' -- arch/i386 include/linux
git ã®ç®¡ç対象ã ãgrepãã¦ãããã
ããã¦ãªãããã
ã³ããããã¡ãã£ãã
git commit --amend -a
åã®ä¿®æ£ã³ããããæ¸ãæãã¦ãã¾ããã
åã®ã¯æ®ã£ã¦ãã¾ãããã¬ã¼ãã¼ã¸ã³ã¬ã¯ã¿ãï¼ã¶æãããã§æ¶å»ãæ¶ãããã¾ã§ã¯æ»ããã
git checkout master
ãã¹ã¿ã¼ãã©ã³ãã«æ»ãã
ã¡ã¼ã«å½¢å¼ã«åºãã
git format-patch master..via8236
masterããviaã¾ã§ã®éã®ããããåºãã
ã¡ã¼ã«ã«è²¼ã£ã¦éãã°ããã
ã¡ã¼ã«ãåãè¾¼ãã
git checkout 0b spell master
git am -i file...
ã¤ã³ã¿ã©ã¯ãã£ãã«é©ç¨ã
確èªãç·¨éã
masiterããï¼ã¤ã®ãã©ã³ãã
git checkout masiter
git marge spell via8636
HEADã«ãã¼ã¸ãããã
ãªã¯ããã¹ãã¼ã¸ã
ãã¹ã¿ãªãã¸ããªãæ´æ°ããã¦ããå ´åã
git pull ãã¹ã¿ã®å¤æ´ãæã£ã¦ããã
ãã¼ã¸ã³ã³ããªã¯ããèµ·ãã£ã¦ããã
ç·¨éãã¦ç´ãã
git diff ã§ç¢ºèªã
ã³ã³ããªã¯ã解決ããå
容ãã³ã¡ã³ãã
質åã¿ã¤ã ã
ãã¡ã¤ã«ã¯ã©ã®ããã«ä¿åããã¦ããã®ãã
ãã¡ã¤ã«ã¯packãã©ã¼ãããã§ä¿åããã¦ããã
ãã®ã¾ã¾åå¥ã«å§ç¸®ããã·ãã¥ã¬ã¼ã·ã§ã³ãå¹´é3GBãããå¢ãããgitãå
¬éããã¦ä¸é±éãããã§ã
å·®åããããã
å·®åã®ãªãªã¸ãã«ã®ãã¤ã³ã¿ã¨å·®åãã¡ã¤ã«ã«ãã¦ã¿ãããã©ãã©ã®ãã¡ã¤ã«ã§ç®¡çã
packå½¢å¼ã§åããããªãã¡ã¤ã«ãï¼ã¤ã®ãã¡ã¤ã«ã«æ¼ãè¾¼ãã§ãã¤ã³ããã¯ã¹ãã¡ã¤ã«ãå¥ã«æã¤ããã«ãªã£ãã05/07ãããã
gitã¯blobã«ã¯ååããªãã
ãã¤ã©ã¼ãã¬ã¼ãï¼åãå
容ããã¡ãã¡ã«ã
éããã¡ã¤ã«ã§ããä¼¼ãè
ã¯å·®åã§ä¿ç®¡ãå§ç¸®çãã¨ã¦ãããã
ããã¹ãããã¤ããªãåºå¥ãã¦ããªãã
cloneã¯ãã«ã¯ãã¼ã³ãªã®ã§æéããããã
OOoã®ããã¥ã¡ã³ãã¯zipã¢ã¼ã«ã¤ãããã£ã«ã¿ãããã¦unzipãã¦å§ç¸®ãªãã§ä¿ç®¡ããªããã¦gitã§ç®¡çãã¦ããã
cloneã®æãªã¢ã¼ããªãã¸ããªã®masterï¼
å
¨ã¦ã®ãã©ã³ããæã£ã¦ããã
ãªã¢ã¼ãã®HEADã®ãã©ã³ãã¨åããã©ã³ãããã¼ã«ã«ã«ä½ãã
ãã¹ã¿ãªãã¸ããªã®ãã©ã³ããã¯ãã¼ã³ãã¦ãããããªãã¨ã¯ï¼
å
¨ã¦ã®ãã©ã³ããæã£ã¦ããã®ã§ããã¼ã«ã«ã§checkoutãã¦æ»ãã°ããã
ããããã®ãä»æ§ãæ´å²çãªçµç·¯ã§ã
ã©ããã¦ããªããcloneã«nocheckuotãã©ã°ãããã®ã§ãããã§ãã£ã¦ãèªåã®å¥½ããªãã®ãcheckoutããã
ãã¼ã«ã«ã§è¤æ°ã®ãã©ã³ããä½æ¥ãããã
ã¯ã¼ãã³ã°ããªã¼ã®ã¿ãè¤æ°æã¤ãã¨ã¯ï¼
cloneãï¼ã¤ã§ãªãã¸ããªã¯ãã¼ããªã³ã¯ã§ä½ããã
newworkdirãã³ã³ããªãã¥ã¼ãã«ãããããã使ãã¨å¥ã®ã¯ã¼ã¯ããªã¼ãä½ããã
buildtestç¨ã«ä½¿ã£ã¦ããã
åãããã³ã«ã®ç¹å¾´ã
gitãããã³ã«ã使ãã人ã¯ãããã使ãã¹ãã
å°ç¨ãªã®ã§å¹çãããã
git native git://ã anon readonlyãsshã§ã¢ã¯ã»ã¹ã§ç¸æããããæ¹æ³ãããã
æå°ã®ã±ã¼ã¹ã§ã§ããããã«éä¿¡ãã¦åæã§ããã
httpãåããéåããã³ããããé çªã«æ©ãããã³ãã³ãã¦ã¬ã¤ãã³ã·ãæªãã
è¥å¹²ã¡ã³ããã³ã¹ãæ¾ç½®ããã¦ãããpushãããªãæ°ããcurlã©ã¤ãã©ãªã¨ã§ãªãã¨åããªãã
DAVã使ã£ã¦ããã®ã§ããµã¼ãã¼ãé¸ãã ãããã
gitã使ãã®ãå®å
¨ã
å
¬éãµã¼ãã¼ä¸ã«ãªãã¸ããªãç½®ãã¦ããå ´åã
ä¸è¦ãªãã©ã³ãããã¾ã«ãã°ã¤ã³ãã¦gcããå¿
è¦ãããã®ãï¼
ãã°ã¤ã³ããªããªãã¸ããªã¯ãããã¯ãããã®ã§ä½¿ãã
pushã®ç´åãçµæã«å¿ããããã¯ãã§ããã
post update hookã使ãã¨ããã ãããããã§gcãèªåã§èµ°ãããã¨ããã ããã
使ã£ã¦ããªããã©ã³ãã£ã¦ãç¡é§ã¨ãã¦ã¯48byteãªã®ã§ãããããã¨ã¯ãªãã
è¦ãç®ã¯æªããªãããªã¢ã¼ãã®ãã©ã³ãããã¼ã«ã«ããåé¤ã§ããããã«ããªã£ã¦ããã
å·®åï¼åã³ãããæã¯ï¼
ãªãã¸ã§ã³çãªèãæ¹ã¯ãããã»ããããã
ææ°ãªãã®ããéå»ã®ãã®ãä½ãã®ãã³ã¹ããå®ãã
åºæ¬çã«ã¯ã³ã¼ãã¯å¢ããæ¹åã«ãªãããã
è¨æ¶éã«ãã£ã¦ç¸äºæ¯è¼ãã¦ãµã¤ãºã®å°ãããã®ãé¸ã¶ããã«ãªã£ã¦ããã
å·®åãè¨ç®ããã³ã¹ãã¯ãããããã©ã¡ã¼ã¿ã¼ã§æå®ã§ãããä½åã¾ã§æ¯è¼ã¦ã¤ã³ããæã¤ãã
gcã®ä¸ã§ãªãã©ã¤ã³ã§ããããããã§ãã£ãããpackdã§ãããã¨ãã§ããã
äºäººåæããã·ã¥ã
楽観çãªããã¯ã«ãªã£ã¦ããã
HEADã®å¤åã®å ´åã ããããã¯ã«ãªã£ã¦ããã
失æããã¨å度ããã·ã¥ãããå¿
è¦ãããã
ã¢ãããã¯æ§ï¼ã¢ãã·ãã£ã¯ä¿è¨¼ããã¦ããã
ãã¼ã¸ã§ã³çªå·ã¨ããèãã¯æãç«ããªãããã»ã³ãã©ã«ãªãã¸ããªã§æ°ããå±¥æ´ã®å
é ã¯åã®å±¥æ´ã®åä¾ã§ãªãã¨ãã¡ã
éããã®ã®ã³ã³ããªã¯ããé²ããã