๊ฐ๋ฐ์์ ๊ต์ (2) - ๋ฒ์ ๊ด๋ฆฌ์ Git, ๊ทธ๋ฆฌ๊ณ Github
๋ฒ์ ๊ด๋ฆฌ๋?
ํน์ ์์ ์ ์งํ ์ํฉ์ ์ ์ฅํด๋๊ณ , ์ธ์ ๋ค์ ๋์์ค๋๋ผ๋ ๊ทธ ์์ ์ผ๋ก๋ถํฐ ๋ค์ ์์ํ ์ ์๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค. ๋ง์ฝ ๋๋์๊ฐ๋ ๊ธฐ๋ฅ๋ ์๋ค๋ฉด ์ธ์ ๋ ์ํ๋ ์์ ์ผ๋ก ๋์๊ฐ ์ ์๋ค.
Git๊ณผ Github
๊ฐ๋ฐ์ ํ๋ฉด์ ์ฝ๋๋ฅผ ์ง๋ค๋ณด๋ฉด ์ด๋ฐ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์์ ์ด๋ค. ์ด๋ฐ ์์ค ์ฝ๋์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ์์คํ ์ค ํ๋๊ฐ ๋ฐ๋ก Git๊ณผ Github์ด๋ค. ์ฝ๋์ ๋ฒ์ ์ ๊ด๋ฆฌํจ๊ณผ ๋์์ ๋ค๋ฅธ ์ฌ๋๊ณผ ํ์ ํ๋ ๊ฒ์ ํธ๋ฆฌํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
Git๊ณผ Github์ ๊ด๋ จํด์๋ ์๋ง์ ๊ฐ์ข๋ค์ด ์๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋๋ ์ด๋ฐ ๊ฐ์ข๋ค ๋ฃ๊ณ ๋๋ ๊ณต๋ถํ๋ค๊ฐ ๊ทธ๋ฅ ์๋ ์ฌ๋์๊ฒ ํ๋ฒ ๋ฐฐ์ ๋๋ฐ ์ด ๋ฐฉ๋ฒ์ด ๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค. ๊ทธ๋์ ๊ฐ๊ธ์ ์ด๋ฉด ๊น๊ณผ ๊นํ๋ธ์ ๋ํด ์ ์๋ ์ฌ๋์๊ฒ ๋ฐฐ์ฐ๋๋ก ํ๋๋ฐ, ๊ทธ๋ด ์ํฉ์ด ์ฌ์์น๊ฐ ์๋๋ค๋ฉด ์๋ ๊ธ์ ์ถ์ฒํ๋ค.
Git? Github? ๋๊ฐ์๊ฑฐ ์๋๊ฐ์?
์๋ฐํ ๋งํ์๋ฉด ๋ค๋ฅด๋ค!
Git
๊ฐ๋ฐ์ ์งํํ๋ฉฐ ์์ฑํ๋ ์์ค์ฝ๋๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๋ฒ์ ์ ๊ธฐ๋กํด๋๊ณ ๊ด๋ฆฌํ ์ ์๋ ์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
Github
Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ฅผ ํธ์คํ ํ๊ณ , ์๊ฐ๊ณผ ๊ณต๊ฐ์ ์ ์ฝ ์์ด ํ์ ํ ์ ์๋ ์จ๋ผ์ธ ์๋น์ค
์ข ๋ ์ฒจ์ธ์ ํ์๋ฉด,
- Git์ด ๋ฒ์ ๊ธฐ๋ก์ ์ ์ฅํ๋ค๋ฉด, Github์์๋ ๊ทธ ๊ธฐ๋ก์ ๋ค๋ฅธ ์ฌ๋๊ณผ ํจ๊ป ๊ณต์ ํ๋ฉด์ ํ์ ํ ์ ์๋ค.
- Github๋ Git์ด๋ผ๋ ๋๊ตฌ๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ฒ ํด์ฃผ๋ ์ฌ์ค ์๋น์ค๋ค. Github๊ณผ ๊ฐ์ด ์น์ฌ์ดํธ ๊ธฐ๋ฐ์ผ๋ก Git์ ๊ด๋ฆฌํ๋ ์จ๋ผ์ธ ์๋น์ค๋ Github์ธ์๋ Gitlab ๋ฑ์ด ์๋ค.
๋ฆฌ๋ ์ค์์ Git ์์ํ๊ธฐ.
์ด์ฉ๋ค๋ณด๋ ๋๋ ์ง๊ธ ์ฐ๋ถํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๊ธฐ๋ฐ์ผ๋ก ์๊ฐํ๊ณ , Git์ ์์ํด๋ณด์.
1. ํฐ๋ฏธ๋ ์์ํ๊ธฐ
ctrl + alt + T
๋ฅผ ๋๋ฌ ํฐ๋ฏธ๋์ ์คํ์ํค์.
2. ์ฐ๋ถํฌ์ GIT ์ค์นํ๊ธฐ
ํฐ๋ฏธ๋์ ์ผ๊ณ , ์๋์ ๋ช ๋ น์ด๋ก git์ค์น ์ฌ๋ถ๋ฅผ ์ ์ ์๋ค.
$ git --version
์ค์น๋์ด์์ง ์๋ค๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋์๋ค๋ฉด ์ ๋๋ก ๊น์ ์ค์นํด๋ณด๋๋ก ํ์. ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋ค.
$ sudo apt-get install git
3. ๊นํ๋ธ ํ์๊ฐ์ ํ๊ธฐ
๊ทธ ๋ค์์๋ ๋ฐ๋ก ๊นํ๋ธ๋ฅผ ์ฌ์ฉํด๋ณด๋๋ก ํ์.
Github๋ ์์์ ๋งํ๋ฏ์ด ์น์ฌ์ดํธ ๊ธฐ๋ฐ ์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ด๊ธฐ ๋๋ฌธ์ ํด๋น ์ฌ์ดํธ์ ๊ณ์ ์ ๋ง๋ค์ด์ผ ์ฌ์ฉํ ์ ์๋ค.
๊ธฐ์
์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ๋ฉด ๋๋ถ๋ถ ๋ฌด๋ฃ์ด๋ฉฐ, ํ์๋ค์๊ฒ๋ github student package๋ฅผ ์ ๊ณตํ๋ ํ๊ต ๋ฉ์ผ์ ์ธ์ฆํด์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
4. ๋ก์ปฌ์ git์์ github ๊ณ์ ์ ๋ณด ๋ฑ๋กํ๊ธฐ
๋จผ์ ํด์ผํ ์ผ์ ๋ก์ปฌ์ git๊ณผ ์๊ฒฉ์ ์๋ github๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด๋ค.
์ด๋ ๋ก์ปฌ์ git๊ณผ ๋๊ธฐํํด์ ์จ๋ผ์ธ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ์๊ฒฉ ์ ์ฅ์๋ฅผ ๊นํ๋ธ์์๋ ๋ ํ์งํ ๋ฆฌ(repository)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ๋ก์ปฌ์์ ๋ค์ํ ์ฝ๋ ์์ ์ ํ ํ์ github์ ๋ด ๊ณ์ ์ ์๋ ๋ ํฌ์งํ ๋ฆฌ๋ก ์ ์ ์กํ๋ ค๋ฉด ๋ก์ปฌ์ ๊น์ด ์๊ฒฉ์ ๊นํ๋ธ ๊ณ์ ์ ๋ณด๋ฅผ ์๊ณ ์์ด์ผ ํ๋ค.
์๋์ ๋ช ๋ น์ด๋ก ๊น๊ณผ ๊นํ๋ธ๋ฅผ ์ฐ๊ฒฐํด๋ณด์.
$ git config --global user.email "ENTER-YOUR-EMAIL"
$ git config --global user.name "ENTER-YOUR-NAME"
์์์ ENTER-YOUR-EMAIL
๊ณผ ENTER-YOUR-NAME
์์๋ ๋ณธ์ธ์ ์ด๋ฉ์ผ์ฃผ์์ username์ผ๋ก ์
๋ ฅํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ์
๋ ฅํด์ฃผ๊ณ ๋๋ฉด gitํด์ด ๋ด๊ฐ Github ์ฌ์ดํธ๋ก ์ฝ๋ ์ ๋ณด๋ฅผ ์ ์กํ ๋ ์ด๋ค ๊ณ์ ์ ์๋ ๋ ํ์งํ ๋ฆฌ๋ก ์ ์กํด์ผ ํ๋์ง ๊ธฐ์ตํ๋ค.
์๋์ ๊ฐ์ด, Git์ ๋ฑ๋กํ config์ ์ ๋ณด๋ฅผ ๋ชจ๋ ํ์ธํ๊ณ ์ถ์ผ๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ณด์.
$ git config -l
5. ๋ด ์ปดํจํฐ์ ๋ก์ปฌ ์ ์ฅ์ ๋ง๋ค๊ธฐ
์ํ๋ ์์น์ ๋๊ธฐํ๋ฅผ ์งํํ๊ณ ์ฝ๋๋ฅผ ๋ฃ์ ํด๋๋ฅผ ํ๋ ์์ฑํ๋ค.
$ cd ~
$ mkdir git_test
์ํ๋ ํด๋๋ฅผ ์์ฑํ์๋ค๋ฉด ๊ทธ ํด๋๋ก ์ฎ๊ฒจ๊ฐ ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ๊น์ผ๋ก ๊ด๋ฆฌํ์.
$ cd git_test
$ git init
init
์ initialization์ ์ฝ์๋ก, ์ด ๋ช
๋ น์ด๋ ์ง๊ธ๋ถํฐ git_test
๋๋ ํ ๋ฆฌ์์ ๋ฐ์ํ๋ ใ
๋ชจ๋ ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ฒ ๋ค๋ ์๋ฏธ๋ค.
6. ๋ก์ปฌ ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐํ๊ธฐ
์ด์ ํด๋น ๋๋ ํ ๋ฆฌ์์ ๋ง๊ตฌ๋ง๊ตฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด ์ฌ๋ฌ๊ฐ์ง๊ฐ ๋ณ๊ฒฝ๋ ํ์ผ์ด ๋ง์ด ์๊ธธ ๊ฒ์ด๋ค.
Git์ด ์ถ์ ํ๊ณ ์๋ ๋ณํ๋ ์๋ ๋ช ๋ น์ด๋ก ํ์ธํ ์ ์๋ค.
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
์์ ๊ฐ์ ๋ด์ฉ์ด ์ถ๋ ฅ๋์๋ค๋ฉด ์ฑ๊ณต์ด๋ค.
์ฌ๊ธฐ์ Untracked files
์์ ๋ํ๋๋ ๋ด์ฉ์ ์ฐ๋ฆฌ๊ฐ ๋ฆฌํฌํธ ํ ํ์๊ฐ ์๋๋ฐ, ์ด๋ add
์ commit
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์งํํ ์ ์๋ค.
$ git add * //๋ชจ๋ ํ์ผ์ add์ฐ์ฐ. ๊ฐ๋ณ ํ์ผ๋ช
์ ์์ฑํด๋ ๋ฌด๋ฐฉํ๋ค.
$ git commit -m "Create something new source code"
[master (root-commit) 438a37c] new readme file
1 file changed, 1 insertion(+)
create mode 100644 README.md
-m
์ ๋ฉ์ธ์ง ์ต์
์ด๋ค. git commit -m
๋ค์๋ ํด๋น ์ปค๋ฐ์ ๋ํ ์ ๋ชฉ์ ์์ฑํ๋ฉด ๋๋ค.
add
์ commit
์ ๊ฐ๋
์ Git์ ๋ค๋ฃฐ ๋ ์์ฃผ ์ค์ํ ๊ฐ๋
์ค ํ๋๋ค. ๋ ๋ช
๋ น์ด ๋ชจ๋ ํ์ฌ์ ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ช
๋ น์ด์ธ๋ฐ ๋๋ต์ ์ผ๋ก ์ค๋ช
ํ์๋ฉด
- add : ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํ ์ค๋น๋จ๊ณ. ํ์ผ์ addํ๋ ๊ฒ์ staging ํ๋ค, ๋๋ stage์ ์ฌ๋ ค๋๋ค๋ ๋ฑ์ ํํ์ ์ฌ์ฉํ๋ค.
- commit : ํน์ ์๊ฐ์ ๋ฒ์ ์ ์ค๋ ์ท์ผ๋ก ํ์ ์์ผ ๋จ๊ฒจ๋๋ ๊ฒ์ ์๋ฏธํ๋ค.
7. Github์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ก์ปฌ ์ ์ฅ์์ ์ฐ๊ฒฐํ๊ธฐ
์์์ ๋ง๋ ๊นํ๋ธ ๊ณ์ ์ผ๋ก ์๋ก์ด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์ด๋ฅผ ๋ก์ปฌ ์ ์ฅ์์ ์ฐ๊ฒฐ์์ผ๋ณด์.
$ git remote add origin https://github.com/USERNAME/USER-REPOSITORY-NAME
/USERNAME/USER-REPOSITORY-NAME
๋ถ๋ถ์๋ ์์ ์ username, repository ์ด๋ฆ์ ์
๋ ฅํด์ฃผ๋ฉด ๋๋ค.
8. ๋ก์ปฌ์ ์ฅ์์ ๋ด์ฉ์ ์๊ฒฉ ์ ์ฅ์๋ก pushํ๊ธฐ
์ด์ ๋ก์ปฌ์์ ๋ชจ๋ ๋ ํ์งํ ๋ฆฌ ์์ ์ด ๋๋๋ฉด, ์๊ฒฉ ์ ์ฅ์๋ก ๋ด์ฉ์ pushํ๋ค.
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 230 bytes | 230.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/jiyeoon/first_test.git
* [new branch] master -> master
์ ๋ช
๋ น์ด๋ ํ์ฌ ๋ก์ปฌ์ ์๋ ๋ฒ์ ๊ธฐ๋ก๊ณผ ๋ชจ๋ ํ์ผ์ origin
, ์ฆ ์๊ฒฉ ์ ์ฅ์์ master ๋ธ๋์น๋ก pushํด ๋ฐ์ด ๋ฃ๊ฒ ๋ค๋ ์๋ฏธ๋ค.
9. ๋ค๋ฅธ ์ฌ๋์ด ์์ ํ ์ฝ๋ ๋ถ๋ฌ์ค๊ธฐ
์ฌ๊ธฐ์ ๊ธฐ์ ํ์
์ ํ๋ค๋ณด๋ฉด ๋ด ๋ก์ปฌ ์ ์ฅ์์ ๋ด์ฉ๊ณผ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ด ๋ฌ๋ผ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ ๋ถ๋ฌ์ฌ ๋ pull
์ ์ฌ์ฉํ๋ค.
$ git pull
๊ทธ ์ธ ๊ฐ์ข git ๋ช ๋ น์ด๋ค
Branch
๋ธ๋์น๋ ์ฌ๋ฌ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ๋ ค๊ณ ํ ๋ ํ์ํ๋ค. ํ์์ ์ํด ๋ง๋ค์ด์ง๋ ๊ฐ๊ฐ์ ๋ธ๋์น๋ ๋ค๋ฅธ ๋ธ๋์น์ ์ํฅ์ ๋ฐ์ง์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์์ ์ ๋์์ ์งํํ ์ ์๋ค.
๋ง์คํฐ ๋ธ๋์น๋ฅผ ๋๊ณ , ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ๋ ํด๋น ๋ธ๋์น๋ค์ ๋ฐ๋ก ๋ง๋ ๋ค์ ๋์ค์ ๋ง์คํฐ ๋ธ๋์น์ mergeํ๋ ๋ฐฉ์์ ํํ๋ฉด ๊น๋ํ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ค.
์๋ง์ ๊นํ๋ธ๋ฅผ ํตํ ํ์ ๋ฐฉ๋ฒ(?)์ด ์๋๋ฐ ์ด๋ ๊ทธ ์ค ํ๋๋ค. ์๋ master ๋ธ๋์น์ develop ๋ธ๋์น๋ฅผ ๋ฐ๋ก ๋์ด ๋ฐฐํฌ์ฉ master ๋ธ๋์น๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌํด๋๊ณ ์๋ค.
๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ
$ git branch -r //์๊ฒฉ ๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ
$ git branch -a //๋ก์ปฌ ๋ธ๋์น ๋ชฉ๋ก ๋ณด๊ธฐ
๋ธ๋์น ์์ฑํ๊ธฐ
$ git branch BRANCH-NAME
๋ธ๋์น ์ ํํ๊ธฐ
$ git checkout BRANCH-NAME
๋ธ๋์น ์ญ์ ํ๊ธฐ
$ git branch -d BRANCH-NAME
๊ทธ ์ธ์๋ ๋ค์ํ ๋ช
๋ น์ด๊ฐ ์๋ค. ์ด๋ ์๋ ๋งํฌ์์ ํ์ธํ์!
https://medium.com/@pks2974/%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EA%B8%B0%EC%B4%88-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0-533b3689db81
์์ฃผ ์ฌ์ฉํ๋ ๊ธฐ์ด Git ๋ช ๋ น์ด ์ ๋ฆฌํ๊ธฐ
์ ๊ฐ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์์ฃผ ์ฌ์ฉํ๋ git ๋ช ๋ น์ด๋ฅผ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
medium.com
'๐ฑ ์๊ธ์๊ธ๋ป๊ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋งค๋ ฅ์ ์ธ ๊นํ๋ธ ํ๋กํ์ ๋ง๋ค์ด๋ณด์์ ๐ป (5) | 2020.08.08 |
---|---|
๊ฐ๋ฐ์์ ๊ต์ (3) - ์ฝ๋ฉ ์คํ์ผ ๊ฐ์ด๋ ์ค์ํ๊ธฐ. Pythonicํ ์ฝ๋ ์์ฑํ๊ธฐ (0) | 2020.08.05 |
๊ฐ๋ฐ์์ ๊ต์ (1) - ํ์ ํด (0) | 2020.07.27 |
์ผ๊ธ์ ์ฒ์ ์์ํด๋ณด๋ค (1) | 2020.06.26 |
๋ด๊ฐ ๋ค์๋ณด๋ ค๊ณ ์ฌ๋ฆฌ๋ ๊ฐ๋ฐ์ ๋ฉด์ ์ง๋ฌธ ๋ฆฌ์คํธ - [์์ ์ค, 2020/06/23] (0) | 2020.06.23 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
๋งค๋ ฅ์ ์ธ ๊นํ๋ธ ํ๋กํ์ ๋ง๋ค์ด๋ณด์์ ๐ป
๋งค๋ ฅ์ ์ธ ๊นํ๋ธ ํ๋กํ์ ๋ง๋ค์ด๋ณด์์ ๐ป
2020.08.08 -
๊ฐ๋ฐ์์ ๊ต์ (3) - ์ฝ๋ฉ ์คํ์ผ ๊ฐ์ด๋ ์ค์ํ๊ธฐ. Pythonicํ ์ฝ๋ ์์ฑํ๊ธฐ
๊ฐ๋ฐ์์ ๊ต์ (3) - ์ฝ๋ฉ ์คํ์ผ ๊ฐ์ด๋ ์ค์ํ๊ธฐ. Pythonicํ ์ฝ๋ ์์ฑํ๊ธฐ
2020.08.05 -
๊ฐ๋ฐ์์ ๊ต์ (1) - ํ์ ํด
๊ฐ๋ฐ์์ ๊ต์ (1) - ํ์ ํด
2020.07.27 -
์ผ๊ธ์ ์ฒ์ ์์ํด๋ณด๋ค
์ผ๊ธ์ ์ฒ์ ์์ํด๋ณด๋ค
2020.06.26