Bibi's DevLog ๐ค๐
[์ง์ฅ์์ ์จ Git] 5. ๊นํ๋ธ๋ก ํ์ - ๊ณต๋ ์์ ์์ ์๊ฒฉ์ ์ฅ์ ๋ฐ ๋ธ๋์น ์ฌ์ฉ ๋ณธ๋ฌธ
[์ง์ฅ์์ ์จ Git] 5. ๊นํ๋ธ๋ก ํ์ - ๊ณต๋ ์์ ์์ ์๊ฒฉ์ ์ฅ์ ๋ฐ ๋ธ๋์น ์ฌ์ฉ
๋น๋น bibi 2021. 2. 10. 01:475. ๊นํ๋ธ๋ก ํ์ ํ๊ธฐ
5.1 ์๊ฒฉ ์ ์ฅ์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
ํ๋์ ๊นํ๋ธ ๊ณ์ ์ผ๋ก ๋ ์ด์์ ์ปดํจํฐ์์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๊ณต์ ํด ๋ฒ์ ์ ๊ด๋ฆฌํ ์ ์๋ค.
์๊ฒฉ ์ ์ฅ์ ๋ณต์ ํ๊ธฐ (clone)
ํด๋ก clone
: ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ง์ญ ์ ์ฅ์๋ก ๋๊ฐ์ด ๋ณต์ ํ๋ ๊ฒ.
- ์๊ฒฉ ์ ์ฅ์๋ฅผ ํด๋ก ํ๋ฉด, ๋ณต์ ๋ ์ง์ญ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์๋ ์๋์ผ๋ก ์ฐ๊ฒฐ๋๋ค.
ํด๋ก ์ ์ฐจ
- ๊นํ๋ธ ์๊ฒฉ ์ ์ฅ์์
Code
๋ฅผ ๋๋ฅด๊ณ , ์๊ฒฉ ์ ์ฅ์์HTTPS
๋งํฌ๋ฅผ ๋ณต์ฌํ๋ค. - ํด๋ก ํ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค ์์น๋ก ์ด๋ํ ํ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
git clone HTTPS๋งํฌ ๋๋ ํ ๋ฆฌ๋ช
: HTTPS๋งํฌ์ ์๊ฒฉ์ ์ฅ์๋ฅผ ํด๋น ๋๋ ํ ๋ฆฌ๋ก ํด๋ก ํจ (ํด๋น ์ด๋ฆ์ด ์์ผ๋ฉด ์๋ก ์์ฑ)git clone HTTPS๋งํฌ .
: HTTPS๋งํฌ์ ์๊ฒฉ์ ์ฅ์๋ฅผ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํด๋ก ํจ
๊ฐ์ธ ์ปดํจํฐ์์ ์์ ํ, ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๊ธฐ
์๊ฒฉ ์ ์ฅ์๋ฅผ clone์ผ๋ก ๋ณต์ ํ ๋ก์ปฌ ์ ์ฅ์์์ ์์ ํ, ์ปค๋ฐ-ํธ์ ํ๋ค.
git commit -am "์ปค๋ฐ๋ฉ์์ง"
git push
ํ์ฌ ์ปดํจํฐ์์ ์์ ํ, ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๊ธฐ
์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ, ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ด ํ์ฌ ์ปดํจํฐ์ ์ง์ญ์ ์ฅ์ ๋ด์ฉ๊ณผ ๋ฌ๋ผ์ก๋ค.
๋ฐ๋ผ์ ํ์ฌ ์ปดํจํฐ์์ ์์
ํ๊ธฐ ์ ์ ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐ ๋ณ๊ฒฝ๋ด์ญ์ ๊ฐ์ ธ์์ผ ํ๋ค(ํ pull)
git pull
(ํ์ฌ ์ปดํจํฐ์ ์ง์ญ ์ ์ฅ์์์)๋ด๋ ค๋ฐ์ ๋ด์ญ์ ๊ฐ์ง๊ณ ์์ ํ,
git commit -am "์ปค๋ฐ๋ฉ์์ง"
git push
์ดํ ๋ค์ ๊ฐ์ธ ์ปดํจํฐ์์ ์์
ํ๊ธฐ ์ํด์๋, ๋ง์ฐฌ๊ฐ์ง๋ก git pull
๋จผ์ ํ ๋ค์ ์์
ํ๊ณ , ๊ทธ ๋ค git commit
- git push
ํ๋ฉด ๋๋ค.
5.2 ์๊ฒฉ ๋ธ๋์น ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
git pull
๋ก ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ ์, ์๊ฒฉ ์ ์ฅ์์ ์ด๋ค ๋ณํ๊ฐ ์์๋์ง ์ ๋ณด๋ฅผ ๋ฏธ๋ฆฌ ํ์ธํ ์ ์๋ค.
์๊ฒฉ master ๋ธ๋์น
๋ก์ปฌ์ ์ฅ์์ master๋ธ๋์น์ฒ๋ผ, ์๊ฒฉ์ ์ฅ์๋ ๋ง๋ค ๋ master๋ธ๋์น๊ฐ ๊ธฐ๋ณธ ์์ฑ๋จ.
$ git log
commit 7942f91d298d355e4fe1679553c65603a5765752 (HEAD -> master, origin/master, origin/HEAD)
Author: Haina <bibi6666667@kakao.com>
Date: Tue Feb 9 22:45:03 2021 +0900
add c
HEAD -> master
: ์ด ์ปค๋ฐ์ด ์ง์ญ ์ ์ฅ์์ ์ต์ข ์ปค๋ฐ์์ ์๋ฏธํจ.origin/master, origin/HEAD
(๋นจ๊ฐ์) : ์ด ์ปค๋ฐ์ด ์๊ฒฉ ์ ์ฅ์์ ์ต์ข ์ปค๋ฐ์์ ์๋ฏธํจ.
rnala@DESKTOP-SL978IQ MINGW64 ~/git_home (master)
$ git log --oneline
cc70393 (HEAD -> master) create f3.txt
7942f91 (origin/master, origin/HEAD) add c
4b0204e Create f2.txt
2c6193f add b
14e8677 add a
rnala@DESKTOP-SL978IQ MINGW64 ~/git_home (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
- ์์ฒ๋ผ
(HEAD -> master)
์ ์์น์(origin/master, origin/HEAD)
์ ์์น๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ก์ปฌ ์ ์ฅ์ ์ํ์ ์๊ฒฉ ์ ์ฅ์ ์ํ๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์๋ฏธํจ. git status
๋ก ์ํ๋ฅผ ๋ณด๋ฉด,Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)
์ ๊ฐ์ด
ํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ master ๋ธ๋์น๊ฐ ์๊ฒฉ ์ ์ฅ์(origin
)์ master๋ธ๋์น๋ณด๋ค 1 ์ปค๋ฐ ์์ ์๋ค๊ณ ์๋ฆผ์ด ๋ธ.
->git push
๋ฅผ ํตํด ๋ก์ปฌ ์ ์ฅ์ ์ปค๋ฐ์ ์๊ฒฉ ์ ์ฅ์๋ก ์ฌ๋ ค์ ๋์ ๋ง์ถฐ ์ฃผ์ด์ผ ํจ.git push
์ดํ์๋ ๋ค์(HEAD -> master, origin/master, origin/HEAD)
์ํ๊ฐ ๋จ.
โ git push
์์, ์๋์ ๊ฐ์ ์ค๋ฅ ๋ฐ์์
$ git push
To https://github.com/bibi6666667/github_test.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/bibi6666667/github_test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
- ์์ธ :
fetch
๋ฅผ ํ์ง ์๊ณpush
ํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ค๋ฅ. (๋ค์ ๋ฌธ๋จ์ ๋ด์ฉ ์ฐธ๊ณ ) - ํด๊ฒฐ 1 :
git push origin +master
(๋น์ถ์ฒ - ์๊ฒฉ ์ ์ฅ์์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ ๋ณด์ฅํ ์ ์์) - ํด๊ฒฐ 2 :
pull
์ ๋จผ์ ํด์ ์๊ฒฉ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ค ๋ค์push
์๊ฒฉ ๋ธ๋์น ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ (fetch)
ํจ์น fetch
: ๋ถ๋ฌ์ค๋ค, ๊ฐ์ ธ์ค๋ค
์ ์๋ฏธ.
git fetch
: ์๊ฒฉ ์ ์ฅ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช ๋ น์ด.git fetch
์git pull
์ ์ฐจ์ด์ ์?
:pull
์ ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐ์ ๊ฐ์ ธ์ ๋ฌด์กฐ๊ฑด ๋ก์ปฌ์ ์ฅ์์ ํฉ์น๋คfetch
๋ ์๊ฒฉ ๋ธ๋์น์ ์ผ์ด๋ ์ ๋ณด๋ง ๊ฐ์ ธ์จ๋ค.- ์ฉ๋
: ์๊ฒฉ ์ ์ฅ์์ ์์ ๋ด์ญ์ ํ์ธํ ๋ค์์ ์ง์ญ ์ ์ฅ์์ ํฉ์น๊ณ ์ถ์ ๋,fetch
๋ก ์ปค๋ฐ์ ๊ฐ์ ธ์ ํ์ธํ ๋ค ๊ด์ฐฎ์ผ๋ฉดpull
๋ก ํฉ์น๋ฉด ๋๋ค.
rnala@DESKTOP-SL978IQ MINGW64 ~/git_office (master)
$ git fetch
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), 587 bytes | 45.00 KiB/s, done.
From https://github.com/bibi6666667/github_test
5b12a9f..ef8e7de master -> origin/master
rnala@DESKTOP-SL978IQ MINGW64 ~/git_office (master)
$ git status
On branch master
Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working tree clean
rnala@DESKTOP-SL978IQ MINGW64 ~/git_office (master)
$ git log --oneline
5b12a9f (HEAD -> master) add d
7942f91 add c
4b0204e Create f2.txt
2c6193f add b
14e8677 add a
git fetch
๋ฅผ ํ๋ฉด..git status
์๋Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded. (use "git pull" to update your local branch)
๋ผ๋ ์๋ด๊ฐ ๋ํ๋๋ค.
โ ๋ด ๋ธ๋์น(๋ก์ปฌ ์ ์ฅ์)๊ฐorigin/master
(์๊ฒฉ์ ์ฅ์)๋ณด๋ค 2์ปค๋ฐ ๋ค์ฒ์ ธ ์๊ณ ,fast-forward
๊ฐ๋ฅํ๋ค.git pull
์ ํตํด ์ง์ญ ์ ์ฅ์๋ฅผ ์ ๋ฐ์ดํธํ๋ผ.git log
์(HEAD -> master)
๋ง ๋ณด์ด๊ณ ,origin/master
๋ ๋ณด์ด์ง ์๋๋ค.
์? ์๊ฒฉ ์ ์ฅ์์ ์ต์ ์ปค๋ฐ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธด ํ์ง๋ง, ์์ง ์ง์ญ ์ ์ฅ์์ ํฉ์น์ง ์์ ์ํ์ด๊ธฐ ๋๋ฌธ.- ์ฆ
fetch
๋ก ๊ฐ์ ธ์จ ์๊ฒฉ ์ ์ฅ์์ ์ต์ ์ ๋ณด๋,
origin/master
๋ธ๋์น๊ฐ ์๋FETCH_HEAD
๋ผ๋ ๋ธ๋์น๋ก ๊ฐ์ ธ์จ๋ค.
git fetch
๋ก ๊ฐ์ ธ์จ ์๊ฒฉ ๋ธ๋์น์ ์ต์ ์ปค๋ฐ์ ๋ณด๋ ค๋ฉด..git checkout FETCH_HEAD
:FETCH_HEAD
๋ธ๋์น๋ก ์ฒดํฌ์์.- (
FETCH_HEAD
์์)git log
:FECTH_HEAD
๋ธ๋์น์ ์ ์ฅ๋ ์๊ฒฉ๋ธ๋์น์ ์ต์ ์ปค๋ฐ์ ํ์ธ ๊ฐ๋ฅ.
(ํด๋น ๋ธ๋์น ์ต์ ์ปค๋ฐ์origin/master, origin/HEAD
๊ฐ ํ์๋์ด ์๋ค) git diff HEAD ofigin/master
: ์ง์ญ ์ ์ฅ์์ ์ต์ ์ปค๋ฐ๊ณผ fetchํ ์ปค๋ฐ์ ์ฐจ์ด๋ฅผ ๋น๊ตํจ
- ํจ์น๋ก ๊ฐ์ ธ์จ ๋ด์ฉ์ ํ์ฌ ๋ธ๋์น์ ํฉ์น๋ ค๋ฉด..
git pull
๋ก ์๊ฒฉ ์ ์ฅ์ ์์ค ๋ด๋ ค๋ฐ๊ธฐgit merge FETCH_HEAD
๋ก FETCH_HEAD๋ธ๋์น์ ์ปค๋ฐ ๋ณํฉํ๊ธฐ (์ถ์ฒ)
(git merge origin/master
: ์๊ฒฉmaster๋ธ๋์น์ ์ปค๋ฐ์ ๋ณํฉํ๋๋ก ์ง์ )
(git merge origin/๋ธ๋์น๋ช
: ์๊ฒฉ ํด๋น ๋ธ๋์น์ ์ปค๋ฐ์ ๋ณํฉํ๋๋ก ์ง์ )
โ ์๊ฐํด๋ณด๋ฉด, ๊ฒฐ๊ตญ git pull
๋ช
๋ น์..
: git fetch
์ git merge FETCH_HEAD
๋ฅผ ํฉ์น ๊ฒ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ๋ช
๋ น์ด์ด๋ค.
5.3 ๊นํ๋ธ ํ์ ์ ๊ธฐ๋ณธ ์ ์ฐจ
๊นํ๋ธ ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ฌ์ฉํด ํ์ ํ ๋, ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ์ฐจ์ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
๊ณต๋ ์์ ์ Collaborators ์ถ๊ฐ
๊นํ public repository๋ ์ฃผ์๋ง ์๋ฉด ๋๊ตฌ๋ ์์ค๋ฅผ ๋ณด๊ณ , ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ค.
ํ์ง๋ง ๋๊ตฌ๋ ์ ์ฅ์์ ์ปค๋ฐ์ ํธ์ํ ์๋ ์๋ค. (์์ค๊ฐ ๋ฌด๋ถ๋ณํ๊ฒ ์์ ๋ ์ ์๊ธฐ ๋๋ฌธ)
๋ง์ฐฌ๊ฐ์ง๋ก ๊ณต๊ฐ/๋น๊ณต๊ฐ ์ ์ฅ์์์ ํ์ ํ๋ ค๋ฉด, ์น์ธ๋ ๊ณต๋ ์์ ์(Collaborators)์๊ฒ๋ง ์ปค๋ฐ์ ์ฌ๋ฆด ๊ถํ์ ์ฃผ์ด์ผ ํ๋ค.
- ํ์ ์ค ํ ๋ช ์ด ๊นํ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ง๋ ๋ค.
- ๋๋จธ์ง ํ์๋ค์ ์๊ฒฉ ์ ์ฅ์์ ๊ณต๋ ์์
์๋ก ์ถ๊ฐํ๋ค.
- Settings - Manage access - Invite a collaborator
- ์ด๋ํ ํ์์ ๊นํ ์์ด๋/๋ฉ์ผ์ฃผ์ ๋ฅผ ์ ๋ ฅํ๊ณ ์ด๋๋ฅผ ๋ณด๋ธ๋ค.
- ์ด๋๋ฅผ ๋ฐ์ ํ์์ด Accept Invitation์ ๋๋ฅด๋ฉด ์ถ๊ฐ๊ฐ ์๋ฃ๋๋ค.
์์ ํ๊ฒฝ ๊ตฌ์ฑ
๊ณต๋ ์์ ์๋ค์ ์๋ก ๋ค๋ฅธ ์ปดํจํฐ๋ค์์ ํ๋์ ๊นํ๋ธ์ ์ ์ํด, ๋ฒ๊ฐ์ ์ปค๋ฐ์ ์ฌ๋ฆฌ๊ณ ๋ด๋ ค๋ฐ์ผ๋ฉด์ ์์ ํด์ผ ํ๋ค.
- ๊ฐ ์์
์์ ์ปดํจํฐ์ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ , ๊ณต๋ ์์
์์ ์ฌ์ฉํ ์ด๋ฆ ๋ฐ ์ด๋ฉ์ผ์ฃผ์๋ฅผ ์ง์ ํ๋ค.
git init ๋ก์ปฌ์ ์ฅ์์ด๋ฆ
cd ๋ก์ปฌ์ ์ฅ์์ด๋ฆ
git config user.name "์ฌ์ฉ์์ด๋ฆ"
git config user.email ๋ฉ์ผ ์ฃผ์
์๊ฒฉ ์ ์ฅ์์ ์ฒซ ์ปค๋ฐ ํธ์
- ์ฒซ ๋ฌธ์๋ฅผ ์์
ํ๊ณ , ์คํ
์ด์ง ๋ฐ ์ปค๋ฐํ๋ค
vim ์ฒซ๋ฌธ์.txt
git add ์ฒซ๋ฌธ์.txt
git commit -m "์ฒซ ์ปค๋ฐ"
- ์ง์ญ ์ ์ฅ์์ ์ปค๋ฐ์ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๋ค
git remote add origin ์๊ฒฉ์ ์ฅ์HTTPS์ฃผ์
: ์๊ฒฉ์ ์ฅ์ ์ฃผ์๋ฅผ ์ง์ญ์ ์ฅ์์ origin์ผ๋ก ์ง์ ํจgit push -u origin master
: origin์ master๋ธ๋์น์ ์ปค๋ฐ์ ํธ์ํจ
(-u
: ๋ค์๋ถํฐ๋git push
๋ง์ผ๋ก ์ปค๋ฐ์ ํธ์ํ ์ ์๋ ์ต์ )
๊ณต๋ ์์ ์ ์ปดํจํฐ์ ์๊ฒฉ ์ ์ฅ์ ๋ณต์
- ๊ณต๋ ์์
์๋ค์ ๊ฐ์ ์์ ์ ์์
์ ์งํํ๊ธฐ ์ ์, ๋ก์ปฌ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ณต์ ํ๋ค
git clone ์๊ฒฉ์ ์ฅ์์ฃผ์
์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ด ์๋๋ผ๋ฉด ํ ๋จผ์
๊นํ๋ธ ํ์ ์ ์ฌ๋ฌ ์ฌ๋์ด ๋ฌธ์๋ฅผ ์์ ํ๊ณ ํธ์ํ๊ธฐ ๋๋ฌธ์, ์์ ์ ์ ๋ฐ๋์ ์๊ฒฉ ์ ์ฅ์์ ์ต์ ์ปค๋ฐ์ ํํ ๋ค์ ๋์ ์ปค๋ฐ์ ํธ์ํด์ผ ํ๋ค.
์๊ฒฉ ์ ์ฅ์๋ฅผ cloneํ ๋ค์๋ ์๊ฒฉ ์ ์ฅ์์ ์ ์ปค๋ฐ์ด ์ฌ๋ผ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ ์์ ์๋ค์ ํ pull - ์ปค๋ฐ commit - ํธ์ push ์์๋๋ก ์์ ํด์ผ ํ๋ค.
๊ณต๋ ์์ ์๋ค์ ์์ ์์ ์ ์ ์๊ฒฉ ์ ์ฅ์์์ ํpull์ ์งํํ๋ค
git pull
โ
pull
์ ๋จผ์ ์งํํ์ง ์๊ณ ํผ์ ์์ ํ ๋ค add-commit-pushํ๋ฉด ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.! [rejected] ...
$ git push To https://github.com/bibi6666667/github_test.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/bibi6666667/github_test.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
๋ฐ์ ์ด์ : ์๊ฒฉ์ ์ฅ์์ ์ต์ ์ปค๋ฐ ์ ๋ณด๊ฐ ํ์์ ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ.
ํด๊ฒฐ : ์ปค๋ฐ์ ํธ์ํ๊ธฐ ์ ์,git pull
๋ก ์๊ฒฉ์ ์ฅ์์ ์ต์ ์ปค๋ฐ์ ๊ฐ์ ธ์จ๋ค.
๊ฐ์ ์์ ํ ๋ค, ์์ ๋ด์ญ์ ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐํ๊ณ ํธ์ํ๋ค.
git add ์์ ํ์ผ.txt
git commit -m "์ปค๋ฐ๋ฉ์์ง"
git push -u origin master
5.4 ํ์ ์์ ๋ธ๋์น ์ฌ์ฉํ๊ธฐ
ํ์
์ ํ์๋ค์ด ๊ฐ๊ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋งก์ ์์
ํ๊ฒ ๋๋ค.
๊ฐ ์์
์ด master๋ธ๋์น์ ๋ฌธ์์ ์์ด์ง ์๋๋ก, ๊ฐ๋ณ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ฒ์ ์ ๊ด๋ฆฌํด์ผ ํ๋ค.
๊ฐ ํ์์ด ๋ง๋ ๋ธ๋์น ์ญ์ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ ์ ์๋ค.
๊นํ๋ธ์์ ํ์ ํ ๋๋ ๋ณดํต ์์ ์๋ง๋ค ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์งํํ๋ฉฐ, ์์ ์ค๊ฐ์ค๊ฐ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด master๋ธ๋์น์ ๋ณํฉํ๋ค.
์ ๋ธ๋์น ํธ์
๋ก์ปฌ ์ ์ฅ์์์ ์ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ , ์ปค๋ฐํ ๋ค์, ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๋ค.
์๊ฒฉ ์ ์ฅ์์์ ์ต์ ์ปค๋ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค
ํญ์ ํpull๋ถํฐ ํ ๋ค์ ์์ ์ ์งํํ๋ค.
์? ๊นํ๋ธ๋ก ํ์ ํ ๋๋ ๋ค๋ฅธ ์์ ์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํด์ผ ํ๋ฏ๋กgit pull
์๋ก์ด ๊ธฐ๋ฅ์ ์์ ํ ์ ๋ธ๋์น๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ๋ง๋ค๊ณ , ์ ๋ธ๋์น๋ก ์ฒดํฌ์์ํ๋ค.
git branch ๋ธ๋์น๋ช
git checkout ๋ธ๋์น๋ช
- ๋๋
git checkout -b f
(๋ธ๋์น ๋ง๋ค๊ธฐ + ํด๋น ๋ธ๋์น๋ก ์ฒดํฌ์์)
์ ๋ธ๋์น์์ ์์ ํ ๋ค ์ปค๋ฐ
git add ์์ ํ์ผ.txt
git commit -m "์ปค๋ฐ๋ฉ์์ง"
์๊ฒฉ ์ ์ฅ์์ ์ ๋ธ๋์น๋ฅผ ํจ๊ป ํธ์
git push origin ๋ธ๋์น๋ช
: ์๊ฒฉ ์ ์ฅ์(origin
)์ ํด๋น ๋ธ๋์น๋ฅผ ํธ์ํ๋ค.
๊นํ๋ธ ์๊ฒฉ ์ ์ฅ์์ ์ ์ํด ํธ์ํ ๋ธ๋์น๋ฅผ ํ์ธํ๋ค.
ํ ๋ฆฌํ์คํธ pull request ๋ก ํธ์ํ ๋ธ๋์น ๋ณํฉ
์๊ฒฉ ์ ์ฅ์์ ํธ์๋ ๋ธ๋์น๋ ํ ๋ฆฌํ์คํธ(pull request, PR)๋ฅผ ํตํด ๋ณํฉ(merge)ํด์ผ ํ๋ค.
๊ทธ๋์ผ ํด๋น ๋ธ๋์น์์ ์์
ํ ๋ด์ฉ์ด ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์๋๋ค.
ํ ๋ฆฌํ์คํธ๋ ํด๋น ์๊ฒฉ ์ ์ฅ์์ ๊ณต๋ ์์ ์๋ผ๋ฉด ๋๊ตฌ๋ ์ดํด๋ณด๊ณ ๋ณํฉํ ์ ์๋ค.
- ์๊ฒฉ ์ ์ฅ์์ ํธ์๋ ๋ธ๋์น ์์ [New pull request]๋ฅผ ๋๋ฅธ๋ค
- pull request ๋ฉ์์ง(์ ๋ชฉ, ๋ด์ฉ)๋ฅผ ์์ฑํ ํ [Create pull request]๋ฅผ ๋๋ฌ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์กํ๋ค
- ์๊ฒฉ์ ์ฅ์์์ Pull request๋ฅผ ๋๋ฌ ๋ฑ๋ก๋ ํ ๋ฆฌํ์คํธ ๋ชฉ๋ก์ ํ์ธํ๋ค.
- ๊ฐ ํ ๋ฆฌํ์คํธ ๋ฉ์์ง๋ฅผ ํ์ธ ํ, ์์
๋ด์ฉ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด [Merge pull request]๋ฅผ ๋๋ฅธ๋ค
- ํด๋น ๊ณต๊ฐ์์ ํ ๋ฆฌํ์คํธ๋ฅผ ๋จ๊ธด ์ฌ๋๊ณผ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์๋ ์๋ค.
- ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๊ณ [Confirm merge]๋ฅผ ๋๋ฌ ๋ธ๋์น๋ฅผ ๋ณํฉํ๋ค.
- ๋ธ๋์น์ ์๋ ํ์ผ์ด master๋ธ๋์น์ ์ ๋ณํฉ๋์๋์ง ํ์ธํ๊ณ , ๋ธ๋์น ๋ชฉ๋ก์ ๋๋ฌ ๋ธ๋์น๊ฐ ์ ๋ณํฉ๋์๋์ง (
merged
์ํ์ธ์ง) ํ์ธํ๋ค.