åºè«
æ¬çš¿ã¯ å åžåœ¹æè·å¡ãWEBããã°ã©ãã«è»¢è·ãããŸã§ã®ããŒãããã ã®é£èŒèšäºã®äžéšã§ãã
Environment
- OS:
Ubuntu 20.04 - Shell:
bash - Editor:
VSCode
Setup
# Linuxbrew ã§ git ã€ã³ã¹ããŒã«
$ brew install git
# Git èšå®
$ git config --global user.name '<username>' # 奜ããªãŠãŒã¶åãèšå®
$ git config --global user.email '<mail@example.dev>' # èªåã®ã¡ãŒã«ã¢ãã¬ã¹ãèšå®
$ git config --global core.editor 'code -w' # VSCodeãããã©ã«ããšãã£ã¿ãŒã«ïŒ-w ãªãã·ã§ã³ãã€ããªããšãšãã£ã¿ã®çµäºãåŸ
ã£ãŠãããªãïŒ
$ git config --global core.autoCRLF false # æ¹è¡ã³ãŒããåæã«ä¿®æ£ããã®ãç¡å¹å
$ git config --global core.quotepath false # æ¥æ¬èªãã¡ã€ã«åçãquoteããã®ãç¡å¹å
Gitãšã¯äœã
- 忣åããŒãžã§ã³ç®¡çã·ã¹ãã ã®äžã€ã§ãããšããšLinuxã®ãœãŒã¹ã³ãŒãã广çã«ç®¡çããããã«éçºããã
- ãã¡ã€ã«ã®ç¶æ
ã奜ããªãšãã«æŽæ°å±¥æŽãšããŠä¿åããŠããããšãã§ãã
- äžåºŠç·šéãããã¡ã€ã«ãéå»ã®ç¶æ ã«æ»ããããç·šéç®æã®å·®åã衚瀺ãããããããšãã§ãã
- GitHub ã GitLab ãªã©ã® GitãµãŒããå©çšãããšãè€æ°äººã§ãã¡ã€ã«ã®å ±æã»ç·šéãªã©ãè¡ãããšãã§ãã
- è€æ°äººã§åããã¡ã€ã«ãå¥ã ã«ç·šéããå Žåããã³ã³ããªã¯ãããšãã圢ã§èŠåã¡ãã»ãŒãžã衚瀺ããããããç¥ããªãéã«ä»äººã®ç·šéå 容ãäžæžãããŠããŸã倱æãèµ·ãããªã
åºæ¬ã³ãã³ã
ãªããžããªã®äœæ
-
ãªããžããª
- ãã¡ã€ã«ãããã°ã©ã ãèšå®æ å ±çã®ãä¿ç®¡å Žæãã®ããš
- Gitã§ã¯ãããŒãžã§ã³ç®¡çããäžã§å¿ èŠãªå€æŽå±¥æŽçãä¿åããŠããå Žæã®ããšãèšã
- ãªããžããªãäœãããšã§ Git ã«ããããŒãžã§ã³ç®¡çãå¯èœãšãªã
- ããŒã«ã«ãªããžããªãšãªã¢ãŒããªããžããª
- ããŒã«ã«ãªããžããªãšã¯ãèªèº«ã®PCäžã§äœæãã Git ãªããžããªã®ããš
- ãªã¢ãŒããªããžããªãšã¯ãGitHub ã GitLab ãªã©ããµãŒãäžã«ä¿ç®¡ãããŠãã Git ãªããžããªã®ããš
- åºæ¬çã«ãªã¢ãŒããªããžããªã¯è€æ°äººã§äœæ¥ããå Žåã«å©çšããããšãå€ã
- è€æ°äººéçºã®åºæ¬çãªæµã
- åå人ãããŒã«ã«ãªããžããªã§äœæ¥å±¥æŽãèšé²
- ãªã¢ãŒããªããžããªã«ããŒã«ã«ãªããžããªã®èšé²ã pushïŒã¢ããããŒãïŒ
- åå人ããªã¢ãŒããªããžããªããææ°ã®ã³ãŒããããŒã«ã«ãªããžããªã« pullïŒããŠã³ããŒãïŒ
- 1 ã«æ»ã£ãŠãããããäœæ¥ãã
- è€æ°äººéçºã®åºæ¬çãªæµã
$ git init
- ã«ã¬ã³ããã£ã¬ã¯ããªãGitã®ãªããžããªïŒããŒã¿å庫ïŒã«ãã
-
.gitãã£ã¬ã¯ããªãäœæããã - ã«ã¬ã³ããã£ã¬ã¯ããªããã®ãŸãŸäœæ¥ãã£ã¬ã¯ããªã«ãªã
-
git init <ãã£ã¬ã¯ããªå>ã§ç¹å®ã®ãã£ã¬ã¯ããªããªããžããªã«ããããšãå¯èœ
-
ãªããžããªã®ã¯ããŒã³
$ git clone <ã¯ããŒã³å
ãªããžããª> [ã¯ããŒã³å
ãã£ã¬ã¯ããª]
- ã¯ããŒã³å ãªããžããªãã¯ããŒã³å ãã£ã¬ã¯ããªïŒæå®ããªãå Žåã¯ã«ã¬ã³ããã£ã¬ã¯ããªã«ååãã£ã¬ã¯ããªãäœæïŒã«ã³ããŒãã
- ãªã¢ãŒããªããžããªãããŒã«ã«ã«ããŠã³ããŒãããå Žåã«äœ¿ãããããšãå€ã
# äŸ: GitHub ãã hogehoge/example.git ãšãããªããžããªãããŠã³ããŒã
$ git clone https://github.com/hogehoge/example.git
# => ã«ã¬ã³ããã£ã¬ã¯ããªã« example ãã£ã¬ã¯ããªãäœæãããexample.git ã®äžèº«ãã¯ããŒã³ããã
# äŸ: äžèšãªããžããªã /usr/local/src/example/ ã«ããŠã³ããŒããããå Žå
$ git clone https://github.com/hogehoge/example.git /usr/local/src/example
Gitã®èšå®
$ git config --global <èšå®å> <èšå®å€>
-
--globalãçç¥ããå ŽåïŒãããã¯--localãæå®ããå ŽåïŒã¯ãçŸåšã®ãªããžããªã§ã®ã¿æå¹ãªèšå®ãšãªã - gitã®globalèšå®ã¯
~\.gitconfigãã¡ã€ã«ã«ä¿åãããŠãã - åºæ¬çãªèšå®å€ã¯ãSetupãã®é ã«èšèŒããéã
èšå®å€ã®ç¢ºèªã»åé€
# èšå®å€ã®ç¢ºèª
$ git config [--global] <確èªãããèšå®ã®åå>
# å
šèšå®ã®äžèŠ§è¡šç€º
$ git config [--global] --list
# èšå®å€ã®åé€
$ git config [--global] --unset <åé€ãããèšå®ã®åå>
ã¹ããŒãžã³ã°ãžã®è¿œå
-
ã¹ããŒãžã³ã°
- äžè¬çã«ã¯åäœã®æçµãã§ãã¯çãè¡ãããã®å Žã®ããš
- Git ã«ãããŠã¯ãäœæ¥èšé²ãä¿åïŒã³ãããïŒãã察象ã®ãã¡ã€ã«ã眮ããŠããå Žæã®ããš
- ã¹ããŒãžã³ã°ãããããšã«ããã1ã€ã®ã³ãããã«å«ãã倿Žå 容ããã¡ã€ã«åäœã§çްããå¶åŸ¡ã§ãã
# 察象ã®ãã¡ã€ã« or ãã£ã¬ã¯ããªãäœæ¥èšé²ä¿åïŒã³ãããïŒã®å¯Ÿè±¡ã«è¿œå ãã
$ git add <ãã¡ã€ã« or ãã£ã¬ã¯ããª>
# 倿Žã®ãã£ããã¹ãŠã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãã¹ããŒãžã³ã°ã«è¿œå
$ git add --all
ã¹ããŒãžã³ã°ã«ç»é²ããå 容ãåãæ¶ã
# 察象ã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªïŒçç¥ããå Žåã¯ãã¹ãŠïŒãã¹ããŒãžã³ã°ããäžãã
## ã³ããã察象ããå€ãã ãã§ã倿Žå
容ãŸã§æ¶ãããããšã¯ãªã
$ git reset [ãã¡ã€ã«ã»ãã£ã¬ã¯ããª]
# æåŸã®äœæ¥èšé²ïŒã³ãããïŒã®ç¶æ
ãŸã§ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãæ»ãããå Žå㯠--hard ãæå®ãã
$ git reset --hard [ãã¡ã€ã«ã»ãã£ã¬ã¯ããª]
ã³ããããã
-
ã³ããã
- ã¹ããŒãžã³ã°ã«äžããããŠãã倿Žå 容ãèšé²ããããš
- ã³ãããããããšã§åããŠäœæ¥å±¥æŽã蟿ããããã«ãªã
$ git commit
# => git config core.editor ã§èšå®ãããšãã£ã¿ãç«ã¡äžããã
# => ã³ãããã¡ãã»ãŒãžïŒäœæ¥èšé²ã®å
容ã«é¢ããã³ã¡ã³ãïŒãèšè¿°ãããšã³ãããããã
# ãšãã£ã¿ãç«ã¡äžããã«äžè¡ã®ã³ãããã¡ãã»ãŒãžãæå®ããŠå³æã³ãããããå Žå
$ git commit -m '<ã³ãããã¡ãã»ãŒãž>'
çŸåšã®ç¶æ ã確èª
# 倿Žç¶æ
ã確èª
## ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãçç¥ããå Žåã¯å
šãŠã®å€æŽç¶æ
ãååŸ
## - èµ€æå: ã¹ããŒãžã³ã°ã«äžããããŠããªããã倿ŽãããŠãããã¡ã€ã«ã»ãã£ã¬ã¯ããª
## - ç·æå: ã¹ããŒãžã³ã°ã«äžããããŠãããã¡ã€ã«ã»ãã£ã¬ã¯ããªïŒæ¬¡ã®ã³ãããã§å€æŽå
容ãä¿åããããã®ïŒ
$ git status [ãã¡ã€ã«ã»ãã£ã¬ã¯ããª]
# 倿Žå
容ã®å·®åã確èª
## ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãçç¥ããå Žåã¯å
šãŠã®å€æŽå·®åãååŸ
$ git diff [ãã¡ã€ã«ã»ãã£ã¬ã¯ããª]
- ã³ãããããåã«å¿ ãç¶æ ã確èªããŠããçãã€ãããšè¯ã
- ç¶æ ã確èªããããšã§ãäœæ¥èšé²ã«äžç·ã«ã€ããŠããããã£ã倿Žãã¹ããŒãžã³ã°ã«äžããããŠããªãããšãåãã£ããããŸã èšé²ããã€ããã®ãªãã£ã倿Žãã³ããããããããšãé²ãããšãã§ãã
ã³ããããã°ã®ç¢ºèª
$ git log
$ git log -n <衚瀺件æ°> # 衚瀺件æ°ãæå®
$ git log --oneline # 1ã³ããã1è¡ã§è¡šç€º
$ git log --grep="<æ€çŽ¢ãã¿ãŒã³>" # ã³ãããã³ã¡ã³ãã§æ€çŽ¢
$ git log <ãã¡ã€ã«> # ç¹å®ã®ãã¡ã€ã«ã®ã³ããããã°ã ã確èª
$ git log --graph # ã°ã©ã圢åŒã§è¡šç€º
- ã³ããããã°ã¯ãã³ãã³ãã§ç¢ºèªããããã GUI ã® Git ã¯ã©ã€ã¢ã³ãã䜿ã£ãæ¹ãèŠããã
- ãšãã£ã¿ã« VSCode ã䜿ã£ãŠããå Žåã¯ã
Git Graphãã©ã°ã€ã³ããªã¹ã¹ã¡- VSCode >
F1ã㌠>Git Graph: View Git Graphãã以äžã®ãããªã³ããããã°ã確èªããããšãã§ãã
- VSCode >
ãã¡ã€ã«åé€
$ git rm <åé€ãããã¡ã€ã«ã»ãã£ã¬ã¯ããª>
- ãªããžããªã®ç®¡çãããã¡ã€ã«ãåé€ãã
- äœæ¥ãã£ã¬ã¯ããªãããç©ççã«ãã¡ã€ã«ãåé€ããã
ç¹å®ã®ãªããžã§ã³ïŒäœæ¥å±¥æŽïŒã«æ»ã
$ git checkout <ã³ãããããã·ã¥> [ãã¡ã€ã«ã»ãã£ã¬ã¯ããª]
- ãã¡ã€ã«ã®ç¶æ ããæå®ããã³ãããããã·ã¥ã®æç¹ãŸã§æ»ã
- ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãæå®ããå Žåã¯ãæå®ãããã¡ã€ã«ã»ãã£ã¬ã¯ããªã®ã¿ç¹å®ã®ãªããžã§ã³ã«æ»ãã
- ã³ãããããã·ã¥ã¯
git logã§ç¢ºèª
éå»ã®ã³ããããæã¡æ¶ã
$ git revert <ã³ãããããã·ã¥>
# mergeã³ããããæã¡æ¶ãããå Žå
$ git revert -m 1 <mergeã³ãããããã·ã¥>
- éå»ã®ã³ããããåé€ããã®ã§ã¯ãªããæã¡æ¶ãåœ¢ã§æ°èŠã«ã³ããããè¡ã
- ãã®ãããæã¡æ¶ããå 容ãä¿®æ£ããŠããäžåºŠã³ãããããå Žå㯠revertã³ãããã«å¯Ÿã㊠revertã³ãããããå¿ èŠããã
- äœæ¥ãéåžžã«è€éåããããæ¥µå䜿ããªã
- äŸãã°ãäœããã® feature ãã©ã³ãã§ revert ãè¡ããrevert ã® revert ãè¡ã£ãç¶æ ã§ develop, master ã«ããå Žåãdevelop, master ããããã®ãã©ã³ãã§ã revert ã® revert ãå¿ èŠã«ãªã
- ããã¯è€æ°äººã§éçºãè¡ã£ãŠãããšäºæ ã®å ã«ãªããããé¿ããã¹ãäºæ¡ã§ãã
çŸåšã®å€æŽå 容ãåãæ¶ã
# ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãæå®
$ git checkout HEAD <ãã¡ã€ã«ã»ãã£ã¬ã¯ããª>
# å
šãã¡ã€ã«äžæ¬ã§åãæ¶ã
$ git reset --hard
- äžèšã³ãã³ãã¯ããªã¢ãŒããªããžããªã« push ããåã®æ®µéã§äœ¿ãã¹ãã³ãã³ã
- ãªã¢ãŒããªããžããªã« push ããŠããŸã£ãåŸã¯ãrevert ã§éå»ã®ã³ããããæã¡æ¶ããããªã
- reset ãè¡ããšå€æŽå±¥æŽãéåžžãšç°ãªãç¶æ ã«ãªãããªã¢ãŒããªããžããªã«ä¿ç®¡ãããŠããå±¥æŽãšç°ãªãå±¥æŽãšã¿ãªãããŠããŸããã
- ãªã¢ãŒããªããžããªã«å¯Ÿãã匷ãç·šéæš©éãããå Žåã¯ã
--forceãªãã·ã§ã³ã§åŒ·å¶ push å¯èœãªãããrevert ãããã㯠reset => åŒ·å¶ push ããæ¹ãè¯ãå Žåãå€ã
ãªããžããªã«ç»é²ãããŠããªããã¡ã€ã«ãåé€
# åé€ããããã¡ã€ã«ã確èª
$ git clean -n
# ç»é²ãããŠããªããã¡ã€ã«ãå
šåé€
$ git clean -f
ãã©ã³ãã®äœæ
-
ãã©ã³ã
- è€æ°äººã§äžŠè¡ããŠäœæ¥ããéã«ãå±¥æŽã®æµããåå²ããŠèšé²ããããã®ä»çµã¿
- å±¥æŽã®æ¬æµã¯
masterãã©ã³ã- æåã«
git initã§ãªããžããªãäœã£ã段éã§ãèªåçã«masterãã©ã³ãã«äœæ¥å±¥æŽãèšé²ãããç¶æ ã«ãªã£ãŠãã
- æåã«
- åå²ãããã©ã³ãã¯ä»ã®ãã©ã³ããšããŒãžããããšã§äžã€ã®ãã©ã³ãã«ãŸãšãçŽãããšãå¯èœ
- ãã©ã³ãã®éçšæ¹æ³ã«ã€ããŠã¯ git-flow.md ãåç §
$ git branch <ãã©ã³ãå>
# ãã©ã³ããäœãå Žåã倧æµãã®ãã©ã³ãã§äœæ¥ãè¡ãããã¯ããªã®ã§
# 以äžã®ã³ãã³ãã§ããã©ã³ãã®äœæãšåãæ¿ããåæã«è¡ãããšãå€ã
$ git checkout -b <ãã©ã³ãå>
ååšãããã©ã³ãã®ç¢ºèª
$ git branch
* master
develop
-
-vãªãã·ã§ã³ãä»ãããšããã©ã³ãã®ããã·ã¥ãã³ãããã³ã¡ã³ãã確èªå¯èœ -
-aãªãã·ã§ã³ãã€ãããšããªã¢ãŒããã©ã³ãã確èªå¯èœ
ãã©ã³ãã®åãæ¿ã
# 察象ã®ãã©ã³ãã®HEAD(ææ°ç¶æ
)ã«åãæ¿ã
$ git checkout <ãã©ã³ãå>
# æ°èŠãã©ã³ããäœæããŠåãæ¿ã
$ git checkout -b <ãã©ã³ãå>
# æ°èŠãã©ã³ãããªã¢ãŒããã©ã³ããšåæããŠåãæ¿ã
$ git checkout -b <ãã©ã³ãå> <ãªã¢ãŒããªããžããªå>/<ãã©ã³ãå>
ãã©ã³ãã®ããŒãž
$ git merge <ããŒãžãããã©ã³ãå>
- çŸåšäœæ¥ããŠãããã©ã³ãã«å¯Ÿè±¡ã®ãã©ã³ããããŒãžãã
- ãã®ãããããŒãžããããã©ã³ãã«äžåºŠ checkout ããŠãã merge ãè¡ãå¿ èŠããã
- ç«¶åïŒã³ã³ããªã¯ãïŒãçºçããå Žåã¯ãç«¶åã解決ããŠãã
git add=>git commitãã
ãã©ã³ãã®åé€
$ git branch -d <ãã©ã³ãå>
- ããŒãžããŠããªãã³ããããããå Žåã¯ãšã©ãŒã«ãªããããããŒãžããŠããåé€ããããš
- ãããã¯
--forceãªãã·ã§ã³ãã€ããã°åŒ·å¶åé€ãå¯èœ - 匷å¶åé€ããå Žåããã®ãã©ã³ãã§è¡ãããå šãŠã®äœæ¥å±¥æŽã倱ãããããèŠæ³šæ
- ãããã¯
ã¿ã°ã®äœæ
# ååã ãã®ã¿ã°(軜éã¿ã°)ãäœæ
$ git tag <ã¿ã°å>
# ã³ã¡ã³ãä»ãã®ã¿ã°(泚éä»ãã¿ã°)ãäœæ
$ git tag -a <ã¿ã°å> -m "<ã³ã¡ã³ã>"
- ã¿ã°ãã€ããããšã§éèŠãªã³ãããïŒäœæ¥èšé²ïŒãæ€çŽ¢ãããããªã
- äžè¬çã«ã¯ãããã°ã©ã ããªãªãŒã¹ããéã«ãããŒãžã§ã³ãã¿ã°ã«ããŠèšé²ããããšãå€ã
ã¿ã°ã®ç¢ºèª
# ç»é²ã¿ã°äžèŠ§ç¢ºèª
$ git tag
# æå®ã¿ã°ã®è©³çŽ°è¡šç€º
$ git show <ã¿ã°å>
ã¿ã°ã®åé€
$ git tag -d <ã¿ã°å>
ãªã¢ãŒããªããžããªã®ç»é²
$ git remote add <èªèå> <ãªã¢ãŒããªããžããªURL>
- GitHub ã GitLab çã®Webäžã®ãªããžããªãç»é²ãã
- ãªã¢ãŒããªããžããªãç»é²ããããšã§ããã®ãªããžããªã«ããŒã«ã«ã®äœæ¥å±¥æŽã pushïŒã¢ããããŒãïŒããããšãã§ããããã«ãªã
- éåžžãªã¢ãŒããªããžããªã¯1ã€ãã䜿ããªããããèªèåã¯æ
£äŸçã«
originã䜿ãããšãå€ã-
git cloneã§ãªããžããªãã¯ããŒã³ããå Žåãã¯ããŒã³å ã®ãªããžããªãã¹ïŒURLïŒãoriginãšããèªèåã§ç»é²ãããŠãã
-
ç»é²ãããŠãããªã¢ãŒããªããžããªã確èª
$ git remote # -v ãªãã·ã§ã³ãä»ãããšè©³çްã確èªã§ãã
ç»é²ãããŠãããªã¢ãŒããªããžããªããææ°ã®ã³ãŒããååŸ
# èªèåãæå®ãããšãªã¢ãŒããªããžããªãšããŠç»é²ãããŠãããã®ã®äžãã該åœã®èªèåã®ãªã¢ãŒããªããžããªã®ã³ãŒãã®ã¿ååŸå¯èœ
# ãã©ã³ãåãæå®ãããšãæå®ãã©ã³ãã®ææ°ã³ãŒãã®ã¿ååŸå¯èœ
$ git pull [èªèå] [ãã©ã³ãå]
ç»é²ãããŠãããªã¢ãŒããªããžããªã«ããŒã«ã«ãªããžããªã®äœæ¥èšé²ãåæ
$ git push <èªèå> <ãã©ã³ãå>
# -u ã§æå®èªèåãããã©ã«ãã® push å
ã«ç»é²ãã€ã€ push å¯èœ
$ git push -u <èªèå> <ãã©ã³ãå>
# => 以é㯠git push ã®ã¿ã§ãªã¢ãŒããªããžããªã« push ã§ããããã«ãªã
# ãªã¢ãŒããªããžããªã«å
šãŠã®ãã©ã³ãã®äœæ¥èšé²ã push ããå Žå
$ git push --all <èªèå>
# ãªã¢ãŒããªããžããªã®ãã©ã³ããåé€ããå Žå
$ git push --delete <èªèå> <åé€ãããã©ã³ãå>
ãªã¢ãŒããªããžããªã®ç»é²åé€
$ git remote remove <èªèå>
.gitignore
-
.gitignore
- Git ãªããžããªã§ç®¡çããããªããã¡ã€ã«ãæå®ããèšå®ãã¡ã€ã«
- å人æ å ±ãæ©å¯æ å ±ãå«ããã¡ã€ã«ãªã©ã¯èšé²ãæ®ããšã»ãã¥ãªãã£äžè¯ããªããããgitignore ããå¿ èŠããã
- ã©ã€ãã©ãªãªã©ãå€éšããããŠã³ããŒãããŠäœ¿ããããªãã¡ã€ã«ã Git 管çããªãæ¹ãè¯ã
- ãã®ä»ãGit 管çããã«ã¯å·šå€§ãããããŒã¿ãã¡ã€ã«ãªã©ã gitignore ã®å¯Ÿè±¡ã§ãã
- Webéçºäžã®æ³šæç¹:
- åºæ¬çã«ãšã³ãžãã¢ä»¥å€ã®äººéã远å ã»ç·šéããå¯èœæ§ã®ãããã¡ã€ã«ã¯å
šãŠ gitignore ããŠããå¿
èŠããã
- Git ã«ããå·»ãæ»ããçºçããå¯èœæ§ããããäœèšãªãã©ãã«ã®åå ã«ãªã
- Webéçºãè¡ãå Žåã¯ããã¡ã€ã«ã®è²¬ä»»æåšãæç¢ºã«ããããã§å¥çŽãçµã¶ã¹ãã§ãã
- åºæ¬çã«ãšã³ãžãã¢ä»¥å€ã®äººéã远å ã»ç·šéããå¯èœæ§ã®ãããã¡ã€ã«ã¯å
šãŠ gitignore ããŠããå¿
èŠããã
åºæ¬
-
.gitignoreãã¡ã€ã«ã䜿ããšç¡èŠããïŒGit ã®ç®¡ç察象å€ãšããïŒãã¡ã€ã«ã»ãã£ã¬ã¯ããªãæå®ã§ãã -
.gitignoreã¯è€æ°ã®ãã£ã¬ã¯ããªã«çœ®ãããšãã§ãã-
.gitignoreã¯ãèªèº«ã®é局以äžã®ãã¹ã«çœ®ããããã¡ã€ã«ã»ãã£ã¬ã¯ããªã«å¯ŸããŠã®ã¿å¹æãçºæ®ãã - æ·±ãéå±€ã®
.gitignoreã«æžãããæå®ã®æ¹ãåªå é äœãé«ãïŒåŸã«è§£éãããïŒ
-
-
.gitignoreå ã®èšè¿°ã¯äžã®è¡ããé ã«ä»¥äžã®ããã«è§£éããã- å
é ã«
/ãå«ãŸãªãè¡ïŒfileãªã©ïŒ-
.gitignore以äžã®éå±€ã«ãããå šãµããã£ã¬ã¯ããªäžã«ããæå®åã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªãç¡èŠãã
-
- æ«å°Ÿä»¥å€ã«
/ãå«ãè¡ïŒ/file,/path/to/file,path/to/fileãªã©ïŒ-
.gitignoreã眮ããŠãããã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªãšããçžå¯Ÿãã¹ã§æå®ããããã¡ã€ã«ã»ãã£ã¬ã¯ããªãç¡èŠãã
-
- æ«å°Ÿã®ã¿
/ãå«ãè¡ïŒdirectory/ãªã©ïŒ-
.gitignore以äžã®éå±€ã«ãããå šãµããã£ã¬ã¯ããªäžã«ãããã®ååã®ãã£ã¬ã¯ããªãç¡èŠãã
-
- æ«å°Ÿä»¥å€ã«ãæ«å°Ÿã«ã
/ãå«ãè¡ïŒ/directory/,/path/to/directory/,path/to/directory/ãªã©ïŒ-
.gitignoreã眮ããŠãããã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªãšããçžå¯Ÿãã¹ã§æå®ããããã£ã¬ã¯ããªãç¡èŠãã
-
-
!ã§å§ãŸãè¡ïŒ!/path/to/fileãªã©ïŒ-
!以éã®ãã¿ãŒã³æååã瀺ããã¡ã€ã«ã»ãã£ã¬ã¯ããªãç¡èŠããªã - åã®ç¡èŠæå®ãäžæžããã
- 以éã®ç¡èŠæå®ã«äžæžããããã
-
- ç©ºè¡ or
#ã§å§ãŸãè¡- è§£éãããªã
- å
é ã«
以äžã®ãããªãã£ã¬ã¯ããªæ§æã®å Žåã.gitignore ã«fileãšã ãæžããšãfile ã directory/file ãå
±ã«ç¡èŠãããããšã«æ³šæïŒ
./
|_ .git/
|_ .gitignore
|_ file
|_ directory/
|_ file
.gitignore ãšåãã£ã¬ã¯ããªã«ãã file ã®ã¿ãç¡èŠãããå Žåã¯ã/fileãšæžãå¿
èŠããã
ãªããGitãªããžããªã®ã«ãŒãããããã¯OSã®ã«ãŒãããã®çµ¶å¯Ÿãã¹æå®ãããæ¹æ³ã¯ãªã
.gitignore ã¯èªèº«ãšåããäžã®éå±€ã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªã«ãã圱é¿ãåãŒããªã
ã¯ã€ã«ãã«ãŒã
.out ãšããæ¡åŒµåã®ãã¡ã€ã«ããŸãšããŠç¡èŠãããå Žå *.out ã®ããã«èšè¿°ã§ãã
ãã®ãããªã¯ã€ã«ãã«ãŒãã®é¡ã«ã¯ä»¥äžã®ãããªãã®ããã
-
*-
/以å€ã®0æå以äžã®æååã«ããã - ã·ã§ã«ã®ãã¹åå±éã§äœ¿ããã
*ãšåãæå³
-
-
?-
/以å€ã®1æåã«ããã - ã·ã§ã«ã®ãã¹åå±éã§äœ¿ããã
?ãšåãæå³
-
-
[0-9]ãªã©-
/以å€ã®æå®ãã1æåã«ããã - ã·ã§ã«ã®ãã¹åå±éã§äœ¿ããã
[0-9]ãªã©ãšåãæå³
-
-
**- 0å以äžã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªã«ããã
- äŸ:
-
/a/**:/a,/a/x,/a/x/yãªã©ã«ããã -
/**/b:/b,/x/b,/x/y/bãªã©ã«ããã -
/a/**/b:/a/b,/a/x/b,/a/x/y/bãªã©ã«ããã
-
