ããŒãžã§ã³ç®¡çãš Git ã«ã€ããŠ
ããŒãžã§ã³ç®¡çã·ã¹ãã (VCS) ã¯ã人ã ãšããŒã ãäžç·ã«ãããžã§ã¯ãã§å ±åäœæ¥ãè¡ãéã®å€æŽå±¥æŽã远跡ããŸãã éçºè ããããžã§ã¯ãã«å€æŽãå ãããšããã®ãããžã§ã¯ãã®ä»¥åã®ããŒãžã§ã³ã¯ãã€ã§ã埩å ã§ããŸãã
éçºè ã¯ããããžã§ã¯ãã®å±¥æŽã確èªããããšã§ã次ã®ããšãç¥ãããšãã§ããŸãã
- ã©ã®ãããªå€æŽãè¡ãããã®ã?
- 誰ã倿Žããã®ã?
- ãã€å€æŽãããã®ã?
- ãªã倿Žãå¿ èŠã ã£ãã®ã?
VCS ã«ãããåå ±åäœæè ã«ãããžã§ã¯ãã®çµ±äžãããäžè²«æ§ã®ãããã¥ãŒãçšæãããæ¢ã«é²è¡äžã®äœæ¥ã衚瀺ãããŸãã 誰ã倿Žããããã©ã®ããã«ãããžã§ã¯ãã®éçºã«ååããããšããéææ§ã®ãã倿Žå±¥æŽãèŠãããšã§ãããŒã ã¡ã³ããŒã¯ç¬ç«ããŠäœæ¥ããªããã足䞊ã¿ãæããããšãã§ããŸãã
忣ããŒãžã§ã³ç®¡çã·ã¹ãã ã§ã¯ããã¹ãŠã®éçºè ããããžã§ã¯ããšãããžã§ã¯ãå±¥æŽã®å®å šãªã³ããŒãæã¡ãŸãã ãã€ãŠäžè¬çã ã£ãéäžåããŒãžã§ã³ç®¡çã·ã¹ãã ãšã¯ç°ãªããDVCS ã¯äžå€®ãªããžããªãžã®åžžææ¥ç¶ãå¿ èŠãšããŸããã Git ã¯ãæãäžè¬çãªåæ£åããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãã Git ã¯ããªãŒãã³ãœãŒã¹ãšåçšãœãããŠã§ã¢éçºã®äž¡æ¹ã§äžè¬ã«äœ¿ãããŠãããå人ãããŒã ãäŒæ¥ã«ãšã£ãŠå€§ããªå©ç¹ããããŸãã
-
Git ã䜿ããšãéçºè ã¯èªåã®å€æŽã決å®ããããããããžã§ã¯ãã®é²è¡ã®ã¿ã€ã ã©ã€ã³å šäœã 1 ãæã§èŠãããšãã§ããŸãã éçºè ã¯ãããžã§ã¯ãã®å±¥æŽã«ã¢ã¯ã»ã¹ããæç¹ãããå¿ èŠãªãã¹ãŠã®ã³ã³ããã¹ããæããçè§£ããŠå ±åäœæ¥ãå§ããããšãã§ããŸãã
-
éçºè ã¯ããããã¿ã€ã ãŸãŒã³ã§äœæ¥ããŸãã Git ã®ãã㪠DVCS ã䜿ããšããœãŒã¹ ã³ãŒãã®æŽåæ§ãç¶æããªããããã€ã§ãã³ã©ãã¬ãŒã·ã§ã³ãè¡ãããšãã§ããŸãã ãã©ã³ãã䜿ããšãéçºè ã¯éçšã³ãŒãã«å¯Ÿãã倿Žãå®å šã«ææ¡ããããšãã§ããŸãã
-
Git ã䜿ã£ãŠããäŒæ¥ã¯ãããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ã®å£ãåãæããæé«ã®ä»äºãããããšã«éäžãããããšãã§ããŸãã ããã«ãGit ã䜿ãããšã§ãããžãã¹å šäœã§ãšãã¹ããŒããéããŠã倧ããªãããžã§ã¯ãã§å ±åäœæ¥ãããããšãå¯èœã«ãªããŸãã
ãªããžããªã«ã€ããŠ
ãªããžã㪠(Git ãããžã§ã¯ã) ã«ã¯ããããžã§ã¯ãã«é¢é£ä»ãããããã¡ã€ã«ããã©ã«ããŒã®ã³ã¬ã¯ã·ã§ã³å šäœãšãåãã¡ã€ã«ã®ãªããžã§ã³å±¥æŽãå«ãŸããŸãã ãã¡ã€ã«ã®å±¥æŽã¯ãã³ããããšåŒã°ããæéçãªã¹ãããã·ã§ãããšããŠè¡šç€ºãããŸãã ã³ãããã¯ããã©ã³ããšããè€æ°ã®éçºã©ã€ã³ã§æ§æãããŠããŸãã Git 㯠DVCS ã§ããããããªããžããªã¯èªå·±å®çµããåäœã§ããããªããžããªã®ã³ããŒãæã£ãŠãã人ã¯èª°ã§ãã³ãŒãããŒã¹ãšãã®å±¥æŽå šäœã«ã¢ã¯ã»ã¹ã§ããŸãã Git ãªããžããªã§ã¯ãã³ãã³ãã©ã€ã³ãä»ã®äœ¿ããããã€ã³ã¿ãŒãã§ã€ã¹ã䜿ãããšã§ãå±¥æŽãšã®ãããšãããªããžããªã®ã¯ããŒã³ããã©ã³ãã®äœæãã³ããããããŒãžãã³ãŒãã®ããŒãžã§ã³éã§ã®å€æŽç¹ã®æ¯èŒãªã©ãå¯èœã§ãã
Git ã䜿ããšãGitHub ãªã©ã®ãã©ãããã©ãŒã ãéããŠããããžã§ã¯ãã®ééæ§ãšã³ã©ãã¬ãŒã·ã§ã³ã®æ©äŒãããã«åºããããšãã§ããŸãã ãããªã㯠ãªããžããªã¯ãããŒã ã飿ºããŠå¯èœãªéãæé«ã®æçµè£œåãæ§ç¯ããã®ã«åœ¹ç«ã¡ãŸãã
GitHub ã®ããã¿
GitHub ã¯ãGit ãªããžããªããã¹ãããŠããŸãããŸããã³ãã³ã ã©ã€ã³æ©èœãissue (ã¹ã¬ãã圢åŒã®ãã£ã¹ã«ãã·ã§ã³)ãpull requestãã³ãŒã ã¬ãã¥ãŒããŸã㯠GitHub Marketplace ã«ããç¡æããã³ææã¢ããªã®ã³ã¬ã¯ã·ã§ã³ã®äœ¿çšã«ãã£ãŠãããåªããã³ãŒãããªãªãŒã¹ããããã®ããŒã«ãéçºè ã«æäŸããŠããŸãã GitHub ã¯ãGitHub ãããŒã®ãããªã³ã©ãã¬ãŒã·ã§ã³ ã¬ã€ã€ãŒã1 å人ã®éçºè ã³ãã¥ããã£ãäœçŸãã®çµ±åããããšã³ã·ã¹ãã ãåããŠããããããœãããŠã§ã¢ã®æ§ç¯æ¹æ³ãå€ãããŸãã
GitHub ã¯ãã³ã©ãã¬ãŒã·ã§ã³ãéçºããã»ã¹ã«çŽæ¥çµã¿èŸŒãã§ããŸãã äœæ¥ã¯ãªããžããªã«ãŸãšããããéçºè ã¯èŠä»¶ãæ¹åæ§ã®æŠèŠã瀺ããããŒã ã¡ã³ããŒã«æåŸ ããããšãèšå®ã§ããŸãã ãã®åŸãGitHub ãããŒã䜿ã£ãŠãéçºè ã¯æŽæ°äœæ¥ãè¡ããã©ã³ããäœæãã倿Žãã³ãããããŠä¿åãã倿Žãææ¡ããã³è°è«ãã pull request ãéããå šå¡ãåæããã pull request ãããŒãžããã ãã§ãã 詳ããã¯ããGitHub ãããŒããã芧ãã ããã
GitHub ã®ãã©ã³ãšã³ã¹ãã«ã€ããŠã¯ãGitHub Pricing ãåç §ããŠãã ããã GitHub Enterprise ãšä»ã®ãªãã·ã§ã³ã®æ¯èŒã«ã€ããŠã¯ããGitHub ãšä»ã® DevOps ãœãªã¥ãŒã·ã§ã³ã®æ¯èŒããåç §ããŠãã ããã
GitHub ãšã³ãã³ã ã©ã€ã³
Git ã®åºæ¬çãªã³ãã³ã
Git ã®å©çšã§ã¯ãéçºè ã¯ç¹å®ã®ã³ãã³ãã䜿ã£ãŠãã³ãŒãã®ã³ããŒãäœæã倿Žãçµåãè¡ããŸãã ãããã®ã³ãã³ãã¯ãã³ãã³ã ã©ã€ã³ããçŽæ¥å®è¡ããããšããGitHub Desktop ã®ãããªã¢ããªã±ãŒã·ã§ã³ã䜿ãããšãã§ããŸãã 以äžã¯ãGit ã䜿ãããã®äžè¬çãªã³ãã³ãã§ãã
-
git init
ã¯ããŸã£ããæ°ãã Git ãªããžããªãåæåããæ¢åã®ãã£ã¬ã¯ããªã®è¿œè·¡ãéå§ããŸãã æ¢åã®ãã£ã¬ã¯ããªã®äžã«ãããŒãžã§ã³ç®¡çã«å¿ èŠãªå éšããŒã¿æ§é ãæ ŒçŽããé衚瀺ã®ãµããã©ã«ããŒã远å ããŸãã -
git clone
ã¯ãæ¢ã«ãªã¢ãŒãã§ååšãããããžã§ã¯ãã®ããŒã«ã« ã³ããŒãäœæããŸãã ãã®ã¯ããŒã³ã«ã¯ããããžã§ã¯ãã®ãã¹ãŠã®ãã¡ã€ã«ãå±¥æŽããã©ã³ããå«ãŸããŸãã -
git add
ã¯å€æŽãã¹ããŒãžããŸãã Git ã¯éçºè ã®ã³ãŒãããŒã¹ãžã®å€æŽã远跡ããŸããããããžã§ã¯ãã®å±¥æŽã«å«ããããã«ã¯ã倿Žãã¹ããŒãžããŠã¹ãããã·ã§ãããäœæããå¿ èŠããããŸãã ãã®ã³ãã³ãã¯ããã® 2 段éã®ããã»ã¹ã®æåã®éšåã§ããã¹ããŒãžã³ã°ãå®è¡ããŸãã ã¹ããŒãžããã倿Žã¯ã次ã®ã¹ãããã·ã§ããã®äžéšãšãªãããããžã§ã¯ãã®å±¥æŽã®äžéšãšãªããŸãã ã¹ããŒãžã³ã°ãšã³ããããå¥ã ã«è¡ãããšã§ãéçºè ã¯ã³ãŒãã£ã³ã°ãäœæ¥ã®æ¹æ³ãå€ããããšãªãããããžã§ã¯ãã®å±¥æŽãå®å šã«ç®¡çããããšãã§ããŸãã -
git commit
ã¯ã¹ãããã·ã§ããããããžã§ã¯ãã®å±¥æŽã«ä¿åãã倿Žè¿œè·¡ããã»ã¹ãå®äºãããŸãã ç°¡åã«èšãã°ãã³ãããã¯åçãæ®ããããªæ©èœã§ããgit add
ã§ã¹ããŒãžããããã®ã¯ãgit commit
ã§ã¹ãããã·ã§ããã®äžéšãšãªããŸãã -
git status
ã¯ãæªè¿œè·¡ã倿Žãã¹ããŒãžããã倿Žã®ç¶æ ã衚瀺ããŸãã -
git branch
ã¯ãããŒã«ã«ã§äœæ¥ããŠãããã©ã³ãã衚瀺ããŸãã -
git merge
ã¯ãéçºã©ã€ã³ãåãããŠããŒãžããŸãã éåžžããã®ã³ãã³ã㯠2 ã€ã®ç°ãªããã©ã³ãã§è¡ããã倿Žãçµåããããã«äœ¿ãããŸãã ããšãã°ãéçºè ãæ©èœãã©ã³ãã®å€æŽãã¡ã€ã³ ãã©ã³ãã«ãŸãšããŠãããã€ãããå ŽåãããŒãžããããšã«ãªããŸãã -
git pull
ã¯ãããŒã«ã«ã®éçºã©ã€ã³ããªã¢ãŒãã®å¯Ÿå¿ãããã©ã³ãããã®æŽæ°ã«ããæŽæ°ããŸãã éçºè ããã®ã³ãã³ãã䜿ãã®ã¯ãããŒã ã¡ã€ãããªã¢ãŒãã®ãã©ã³ãã«ã³ããããããã®å€æŽãèªåã®ããŒã«ã«ç°å¢ã«åæ ããããå Žåã§ãã -
git push
ã¯ãããŒã«ã«ã§è¡ããããã©ã³ããžã®ã³ãããã§ãªã¢ãŒã ãªããžããªãæŽæ°ããŸãã
詳现ã«ã€ããŠã¯ãGit ã³ãã³ãã®å®å šãªãªãã¡ã¬ã³ã¹ ã¬ã€ããåç §ããŠãã ããã
äŸ: æ¢åã®ãªããžããªã«å¯äžãã
# download a repository on GitHub to our machine
# Replace `owner/repo` with the owner and name of the repository to clone
git clone https://github.com/owner/repo.git
# change into the `repo` directory
cd repo
# create a new branch to store any new changes
git branch my-branch
# switch to that branch (line of development)
git checkout my-branch
# make changes, for example, edit `file1.md` and `file2.md` using the text editor
# stage the changed files
git add file1.md file2.md
# take a snapshot of the staging area (anything that's been added)
git commit -m "my snapshot"
# push changes to github
git push --set-upstream origin my-branch
äŸ: æ°ãããªããžããªãéå§ããããã GitHub ã«å ¬éãã
ãŸããGitHub ã«æ°ãããªããžããªãäœæããå¿ èŠããããŸãã 詳ããã¯ããHello Worldããã芧ãã ããã READMEã.gitignoreããŸãã¯ã©ã€ã»ã³ã¹ ãã¡ã€ã«ä»ãã§ãªããžããªãåæåããªãã§ãã ããã ãã®ç©ºã®ãªããžããªã§ãã³ãŒãã管çããŸãã
# create a new directory, and initialize it with git-specific functions
git init my-repo
# change into the `my-repo` directory
cd my-repo
# create the first file in the project
touch README.md
# git isn't aware of the file, stage it
git add README.md
# take a snapshot of the staging area
git commit -m "add README to initial commit"
# provide the path for the repository you created on github
git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPOSITORY-NAME.git
# push changes to github
git push --set-upstream origin main
äŸ: GitHub ã®æ¢åã®ãã©ã³ãã«è²¢ç®ãã
ãã®äŸã§ã¯ããã·ã³äžã« repo
ãšãããããžã§ã¯ããæ¢ã«ãããããŒã«ã«ã§æåŸã«å€æŽãå ããããŠããæ°ãããã©ã³ãã GitHub ã«ããã·ã¥ããããšä»®å®ããŠããŸãã
# change into the `repo` directory
cd repo
# update all remote tracking branches, and the currently checked out branch
git pull
# change into the existing branch called `feature-a`
git checkout feature-a
# make changes, for example, edit `file1.md` using the text editor
# stage the changed file
git add file1.md
# take a snapshot of the staging area
git commit -m "edit file1"
# push changes to github
git push
å ±åéçºã®ã¢ãã«
GitHub ã§å ±åäœæ¥ãè¡ãã«ã¯ã䞻㫠2 ã€ã®æ¹æ³ããããŸãã
- å ±æãªããžããª
- ãã©ãŒã¯ãšãã«
å ±æãªããžããªã§ã¯ãå人ãšããŒã ã¯ãèªã¿åããæžã蟌ã¿ããŸãã¯ç®¡çè ã¢ã¯ã»ã¹æš©ãæã€å ±åäœæè ãšããŠæç€ºçã«æå®ãããŸãã ãã®åçŽãªã¢ã¯ã»ã¹èš±å¯æ§é ãšä¿è·ããããã©ã³ããªã©ã®æ©èœãçµã¿åããããããŒã ãžã® GitHub ã®æ¡çšãä¿é²ããã®ã«åœ¹ç«ã¡ãŸãã
ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ããã誰ã§ãå¯äžã§ãããããžã§ã¯ãã§ã¯ãåã ã®ã¢ã¯ã»ã¹èš±å¯ã®ç®¡çã¯å°é£ã§ãããã ãããã©ãŒã¯ãšãã« ã¢ãã«ã§ã¯ããããžã§ã¯ããèŠãããšãã§ãããŠãŒã¶ãŒã¯èª°ã§ãå¯äžããããšãã§ããŸãã ãã©ãŒã¯ãšã¯ãéçºè ã®å人ã¢ã«ãŠã³ãã§è¡ã£ããããžã§ã¯ãã®ã³ããŒã®ããšã§ãã ãã¹ãŠã®éçºè ã¯èªåã®ãã©ãŒã¯ãå®å šã«ã³ã³ãããŒã«ããããšãã§ããä¿®æ£ãæ°ããæ©èœãèªç±ã«å®è£ ã§ããŸãã ãã©ãŒã¯ã§å®äºããäœæ¥ã¯ãåå¥ã«ä¿æãããããpull request ãä»ããŠå ã®ãããžã§ã¯ãã«æ»ãããŠæç€ºãããŸãã ããã§ãã¡ã³ããã³ã¹ç®¡çè ã¯ããŒãžãããåã«ãææ¡ããã倿Žã確èªã§ããŸãã 詳ããã¯ãããããžã§ã¯ãã«è²¢ç®ããããã芧ãã ããã