Hatena::Diary

¥á¥á¥á¥â¥â RSS¥Õ¥£¡¼¥É

2010-04-21

git¤Î»È¤¤Êý¥á¥â

github¤ò»È¤¤»Ï¤á¤¿¤Î¤Ç¡¢git¤Ë¤Ä¤¤¤Æ¤Î»È¤¤Êý¥á¥â¤Ç¤¹¡£

git¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤È¤³¤í¤«¤é¤Îºî¶È¤Ë¤Ê¤ê¤Þ¤¹¡£


½é´üÀßÄê

¥³¥ß¥Ã¥È¤·¤¿»þ¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤ë¥æ¡¼¥¶Ì¾¤È¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Þ¤¹¡£

$ git config --global user.name "memememomo"
$ git config --global user.email "memememomo@gmail.com"

¤Þ¤¿¡¢¥³¥Þ¥ó¥É¤«¤é¤Î½ÐÎϤòÆÉ¤ß¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë¡¢color.uiÀßÄê¤òauto¤Ë¤·¤Þ¤¹¡£

$ git config --global color.ui auto

°Ê¾å¤ÎÀßÄê¤Ï¡Ö$HOME/.gitconfig¡×¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£

$ cat $HOME/.gitconfig
[user]
	name = memememomo
	email = memememomo@gmail.com
[color]
	status = auto
	branch = auto
	ui = auto

ºî¶ÈÎΰè¤ògit¥Ð¡¼¥¸¥ç¥ó´ÉÍýÂоݤˤ¹¤ë

f:id:memememomo:20100418205754p:image

¡Öhomepage¡×¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡Öindex.html¡×¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¤·¤Þ¤¹¡£

¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ògit¥Ð¡¼¥¸¥ç¥ó´ÉÍýÂоݤˤ·¤Þ¤¹¡£


¡Öhomepage¡×¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤·¤Æ¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£

$ cd homepage
$ git init

¼Â¹Ô¤¹¤ë¤ÈƱ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡Ö.git¡×¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Ç¤­¤Þ¤¹¡£

¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¥ê¥Ý¥¸¥È¥ê¤È¤Ê¤ê¤Þ¤¹¡£

f:id:memememomo:20100418205827p:image


¤³¤Î»þÅÀ¤Ç¤Ï¡¢index.html¥Õ¥¡¥¤¥ë¤Ï¥Ð¡¼¥¸¥ç¥ó´ÉÍý²¼¤Ë¤¢¤ê¤Þ¤»¤ó¡£

¤Ä¤Þ¤ê¡¢¥ê¥Ý¥¸¥È¥ê¤«¤é¸«¤Æindex.html¥Õ¥¡¥¤¥ë¤Ï¤É¤¦¤¤¤¦¤â¤Î¤«¤ÏÃΤê¤Þ¤»¤ó¡£

¡Ögit status¡×¥³¥Þ¥ó¥É¤òÂǤĤȡÖUntracked files:¡×¤È¤¤¤¦¹àÌܤˡÖindex.html¡×¤¬¤¢¤ë¤Î¤¬Ê¬¤«¤ê¤Þ¤¹¡£

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       index.html
nothing added to commit but untracked files present (use "git add" to track)

index.html¥Õ¥¡¥¤¥ë¤Ï¤Þ¤À¥È¥é¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¤À¤È¤¤¤¦¤³¤È¤òɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£


index.html¥Õ¥¡¥¤¥ë¤ò¥È¥é¥Ã¥¯¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï²¼µ­¤Î¥³¥Þ¥ó¥É¤òÂǤÁ¤Þ¤¹¡£

$ git add .

¤³¤Î¥³¥Þ¥ó¥É¤Î¸å¤Ë¤â¤¦°ì²ó¡Ögit status¡×¤òÂǤĤÈɽ¼¨¤¬ÊѤï¤ë¤«¤È»×¤¤¤Þ¤¹¡£



¤³¤Î»þÅÀ¤Ç¤Ï¡¢¤Þ¤À¥ê¥Ý¥¸¥È¥ê¤ËÊѹ¹¤ò³ÎÄꤷ¤Æ¤¤¤Þ¤»¤ó¡£

Êѹ¹¤ò¥ê¥Ý¥¸¥È¥ê¤Ë³ÎÄꤹ¤ë»ö¤ò¡Ö¥³¥ß¥Ã¥È¡×¤È¤¤¤¤¤Þ¤¹¡£

¥³¥ß¥Ã¥È¤ò¤¹¤ë¥³¥Þ¥ó¥É¤òÂǤÁ¤Þ¤¹¡£

$ git commit -m "First commit"

¤³¤ì¤Ç¥ê¥Ý¥¸¥È¥ê¤ËÊѹ¹¤¬È¿±Ç¤µ¤ì¤Þ¤¹¡£

f:id:memememomo:20100418210457p:image



ÉáÃʤγ«È¯¤Îή¤ì

git¤òÍѤ¤¤¿³«È¯¤Îή¤ì¤Ï²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


  1. ¥Õ¥¡¥¤¥ë¤òÊÔ½¸¡¢¿·µ¬ºîÀ®
  2. ¡Ögit status¡×¤ÇÊѹ¹¾õ¶·¤ò³Îǧ¡£¡Ögit diff¡×¤ÇÊѹ¹²Õ½ê¤ò³Îǧ¡£
  3. ÊÔ½¸ºî¶È¤¬½ª¤ï¤Ã¤¿¤é¡Ögit add ¥Õ¥¡¥¤¥ë̾¡×¤Þ¤¿¤Ï¡Ögit add -u¡×¤ÇÊѹ¹¥Õ¥¡¥¤¥ë¤òµ­Ï¿¤¹¤ë»ØÄê¤ò¹Ô¤Ê¤¦¡£
  4. ¡Ögit commit¡×¤Ç¥ê¥Ý¥¸¥È¥ê¤ËÊѹ¹²Õ½ê¤òÈ¿±Ç

¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï°ì¿Í¤Ç³«È¯¤·¤Æ¤¤¤ë»þ¤Îή¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¤Þ¤¿¡¢¡Ögit add -u¡×¤È¡Ögit commit¡×¤ò°ì³ç¤Ç¼Â¹Ô¤¹¤ë¡Ögit commit -a¡×¤È¤¤¤¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£


.gitignore¤ÎÀßÄê

Ʊ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤¹¤ë¤Ù¤­¤Ç¤Ê¤¤¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤È¤­¤¬¤¢¤ê¤Þ¤¹¡£

Î㤨¤Ðemacs¤ò»È¤Ã¤Æ¤¤¤ë¤È¡Öindex.html~¡×¤È¤¤¤¦¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤Þ¤¹¡£

¤³¤¦¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¡¢¡Ögit status¡×¤ÇËè²óɬ¤ºÉ½¼¨¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¤³¤¦¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤ò̵»ë¤¹¤ë¤è¤¦¤Ë¡Ö.gitignore¡×¤òÀßÄꤷ¤Þ¤¹¡£

$ cat .gitignore <<\EOF
*~
EOF

¤³¤ì¤Ç¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬Ìµ»ë¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


¶¦Æ±¥ê¥Ý¥¸¥È¥ê¤òºîÀ®

¤¤¤Þ¤Þ¤Ç¤Î¥ê¥Ý¥¸¥È¥ê¤Ï¡¢¸Ä¿ÍŪ¤Ê¤â¤Î¤Ç¤¹¡£

¤³¤Î¥ê¥Ý¥¸¥È¥ê¤À¤±¤Ç¤â¶¦Æ±ºî¶È¤¬¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¢¤ä¤Ï¤ê¶¦Æ±ÍѤΥê¥Ý¥¸¥È¥ê¤¬¤¢¤ë¤ÈÊØÍø¤Ç¤¹¡£


²¼µ­¤Î¼ê½ç¤Ç¶¦Æ±ÍѤΥê¥Ý¥¸¥È¥ê¤òÍѰդ·¤Þ¤¹¡£

$ mkdir ~/pub/repository/homepage.git
$ cd ~/pub/repository/homepage.git
$ git init --bare

¤³¤ì¤Ç¡¢¡Ö~/pub/repository/homepage.git¡×¤È¤¤¤¦¶¦Æ±ÍÑ¥ê¥Ý¥¸¥È¥ê¤¬¤Ç¤­¤Þ¤·¤¿¡£

¼¡¤Ë¡¢¶¦Æ±ÍÑ¥ê¥Ý¥¸¥È¥ê¤Ë¸Ä¿ÍÍѤΥê¥Ý¥¸¥È¥ê¤ÎÀßÄê¤òÈ¿±Ç¤µ¤»¤Þ¤¹¡£

$ git push ~/pub/repository/homepage.git master

f:id:memememomo:20100418211417p:image



¤³¤ì¤Ç¡¢¶¦Í­¥ê¥Ý¥¸¥È¥ê¤«¤é¥³¥Ô¡¼¤ò»ý¤Ã¤ÆÍè¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¥³¥Ô¡¼¤ò»ý¤Ã¤Æ¤¯¤ë¤Ë¤Ï²¼µ­¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

$ git clone ~/pub/repository/homepage.git homepage.new

f:id:memememomo:20100418211819p:image


homepage.new¤ÇÊÔ½¸ºî¶È¤ò¹Ô¤Ê¤Ã¤¿»þ¤Ë¡¢¶¦Æ±¥ê¥Ý¥¸¥È¥ê¤ËÈ¿±Ç¤µ¤»¤ë¼ê½ç¤Ï²¼µ­¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

­¡ $ emacs profile.html
­¢ $ git commit -a "add prifile.html
­£ $ git push origin master

f:id:memememomo:20100418212338p:image



homepage.new¤ÎÊѹ¹¤òhomepage¥Ç¥£¥ì¥¯¥È¥ê¤ËÈ¿±Ç¤µ¤»¤ë¾ì¹ç¡¢

homepage¥Ç¥£¥ì¥¯¥È¥ê²¼¤Ç²¼µ­¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£

$ git pull ~/pub/repository/homepage.git

f:id:memememomo:20100418212701p:image

¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢profile.html¥Õ¥¡¥¤¥ë¤¬È¿±Ç¤µ¤ì¤Þ¤¹¡£


¤³¤Îή¤ì¤Ç¶¦Æ±³«È¯¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£



github¤ò»È¤Ã¤¿ºî¶È

¶¦Æ±¥ê¥Ý¥¸¥È¥ê¤Ï¡¢Æ±¤¸¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£

¥Í¥Ã¥È¥ï¡¼¥¯¤Ë·Ò¤¬¤Ã¤Æ¤¤¤ë¾¤Î¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤¢¤ë¶¦Æ±¥ê¥Ý¥¸¥È¥ê¤«¤é¥³¥Ô¡¼¤ò»ý¤Ã¤Æ¤¯¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

clone¤äpush¤äpull¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤òÄ̤¸¤Æ¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£

ÄÌ¿®¤ò¤É¤Î¤è¤¦¤Ê¥×¥í¥È¥³¥ë¤Ç¹Ô¤Ê¤¦¤«¤Ï¡¢ÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


github¤Ç¤Ï¡¢¶¦Æ±¥ê¥Ý¥¸¥È¥ê¤òºîÀ®¤·¤Æ¡¢Web¾å¤Ç¶¦Í­¤Ç¤­¤ë¥µ¡¼¥Ó¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


f:id:memememomo:20100418213417p:image



»²¹Í

WEB+DB PRESS Vol.50

WEB+DB PRESS Vol.50

¡Ö¤Ï¤¸¤á¤Æ¤ÎGit¡×¤È¤¤¤¦µ­»ö¤Ç¡¢¤«¤Ê¤ê¾Ü¤·¤¯²òÀ⤬¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

½é¿´¼ÔÍÑ¡¦¡¦¡¦¡©


github

¥¹¥Ñ¥àÂкö¤Î¤¿¤á¤Î¥À¥ß¡¼¤Ç¤¹¡£¤â¤·¸«¤¨¤Æ¤â²¿¤âÆþÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
¥²¥¹¥È


²èÁüǧ¾Ú

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯ - http://d.hatena.ne.jp/memememomo/20100421/1271806163