Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript ์ ๋ฌธ ๋ด์ฉ ์ค.. - ์์ด๋ณด git๊ณผ github1 ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript ์ ๋ฌธ ๋ด์ฉ ์ค.. - ์์ด๋ณด git๊ณผ github1
๋น๋น bibi 2020. 10. 7. 14:40์ค๋์ ์ด๊ฐ๋จ git๊ณผ github ์ฌ์ฉ๋ฒ์ ์์๋ณผ ๊ฒ์ด๋ค!
๋ ์ค ์์ฝ
github์ ์์ค ์ ๋ก๋ํ๊ณ ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ํ๊ธฐ
- ์ ๋ก๋ํ ํ์ผ ์ ํํ๊ณ add -> commit -> push
์ ์ฐจ
- github ๊ฐ์
- github ์ ์ฅ์(ropository) ์์ฑ
-> ๊นํ๋ธ ์๋ฒ ๋ด์ ์ ์ฅ์๋ฅผ ๋ง๋๋ ์์ . - github ์ ์ฅ์ ํด๋ก (clone)
-> ๊นํ๋ธ ์ ์ฅ์๋ฅผ ๋ด ์ปดํจํฐ์ ๋ณต์ฌํ๋ ์์ . - ๋ด ์ปดํจํฐ์ ๋ด ๋ฌธ์ ์๋์ ์์ฑ๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ ํ์ผ ์์ฑ ๋ฐ ์์ ์๋ฃ
- ์ปค๋ฐํ ํ์ผ๋ค ์ ํํด์ ์คํ ์ด์ง์ ์ฌ๋ฆฌ๊ธฐ (add)
- ์ปค๋ฐํ๊ธฐ (commit)
- ํธ์ํ๊ธฐ (push)
-> ์ฌ๊ธฐ๊น์ง ํ๋ฉด ๋ด๊ฐ ์์ ํ ๋ด์ฉ์ด ๊นํ๋ธ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ค. - "github.com/๋ด์์ด๋/๋ดํ๋ก์ ํธ" ๋งํฌ๋ฅผ ํตํด ์ ์์ ์ผ๋ก ์ ๋ก๋ ๋์ด ์๋์ง ํ์ธ
git ๊น ์ด๋?
ํ์ ๊ด๋ฆฌ ์์คํ
(Verson Control System ๋ฒ์ ์ปจํธ๋กค ์์คํ
) ์ ํ ์ข
๋ฅ์
๋๋ค.
์ฃผ๋ก ๊ฐ๋ฐ์๋ค์ด ํ๋ก๊ทธ๋จ๊ณผ ๊ด๋ จ๋ ํ์ผ๋ค์ ์ ์ฅ&๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
๊ฒ์์ ์ธ์ด๋ธ ํฌ์ธํธ์ ์ ์ฌํ๋ฐ, ์ธ์ ๋ ์ง ์ ์ฅ ์์ ์ผ๋ก ๋๋์ ๊ฐ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ์ธ ๊ฐ์ง ๊ธฐ๋ณธ ๊ธฐ๋
๋ง ๋ฐฐ์ฐ๋ ค ํฉ๋๋ค.
์ปค๋ฐ (commit)
๊ฒ์์ ์ธ์ด๋ธ์ ํด๋นํ๋ ํ๋์ git์์๋ ์ปค๋ฐ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ค์ ๋งํด์ ์ฌ๋ฌ๋ถ์ ์ธ์ ๋ ์ง ์ปค๋ฐํ ์์ ์ผ๋ก ๋๋์ ๊ฐ ์ ์์ต๋๋ค .
์ปค๋ฐ์ ํ๋ ค๋ฉด ์ ์ฅ์ ์ํ๋ ํ์ผ๋ค์ ๋ฌถ์ด์ ์ปค๋ฐ ๋ช
๋ น์ ์ํํ๋ฉด ๋ฉ๋๋ค.
(->add)
(์๋ฅผ ๋ค์ด..)
1์ฐจ ๊ฐ๋ฐ์, 2์ฐจ ๊ฐ๋ฐ์, 3์ฐจ ๊ฐ๋ฐ์.. ์ ๊ธฐํํ๋ค๊ฐ ๋ค์ ์๊ฐํด๋ณด๋ ์ฒ์ ๋ง๋ ๊ฒ ์ ์ผ ๋ซ๋ค. ์ถ์ผ๋ฉด
์ปค๋ฐ๋ง ํ๋ค๋ฉด 1์ฐจ ๊ฐ๋ฐ์์ ์ํ๋ก ๋๋์๊ฐ ์ ์์!
์คํ ์ด์ง์ ์ฌ๋ฆฐ๋ค (add)
์์์ ์ปค๋ฐํ๊ธฐ ์ ์ ์ ์ฅ์ ์ํ๋ ํ์ผ๋ค์ ๋ฌถ๋ ์ผ์ ํด์ผ ํ๋ค๊ณ ํ์ต๋๋ค.
์ด ์์
์ ์คํ
์ด์ง์ ํ์ผ์ ์ฌ๋ฆฐ๋ค๋ผ๊ณ ํฉ๋๋ค.
ํน์ ์ค์ฌ์ ๊ฐ๋จํ 'add'๋ผ๊ณ ๋ ํฉ๋๋ค.
์ฆ ๊น์ ์ ์ฅ์ ์ํ๋ฉด..
์ํ๋ ํ์ผ์ ์คํ
์ด์ง์ ์ฌ๋ฆฌ๊ธฐ(add) -> ์ฌ๋ฆฐ ํ์ผ ์ปค๋ฐcommitํ๊ธฐ.
์คํ
์ด์ง์ ํ์ผ์ ์ฌ๋ ค์ผ ๊ทธ ํ์ผ๋ค์ ์ปค๋ฐํ ์ ์๋ค.
github์ ์ ๋ก๋ : ํธ์(push)
์ปค๋ฐ์ ํ๋ฉด ์ด์ ํ์ฌ ์์
๋ด์ฉ์ ์ธ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ๋ด ์ปดํจํฐ์ ์ ์ฅ๋ฉ๋๋ค.
(๋ด ์ปดํจํฐ์ ์ ์ฅํ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์, ์ปดํจํฐ๊ฐ ๋ง๊ฐ์ง๊ฑฐ๋ ํ๋ฉด ์ปค๋ฐํ ๋ด์ฉ๋ ์ฌ๋ผ์ง)
์ด๊ฑธ github์ ์
๋ก๋ํ๋ฉด ๋ง์น ์์ฆ ์ ํํ๋ ์คํ์ด๋ PS4, ๊ฐ์ข
๋ชจ๋ฐ์ผ ๊ฒ์์ ์๊ฒฉ ์ ์ฅ๊ณผ ๋น์ทํ ์ผ์ ํฉ๋๋ค.
(usb/์ธ์ฅํ๋/ํด๋ผ์ฐ๋์ ๋ฐฑ์
ํ๋ ๊ฒ๊ณผ ๊ฐ๋ค)
๋ค๋ฅธ ์ฌ๋์ด๋ ๊ณต์ ํ ์๋ ์๊ณ , ๋ด ์ปดํจํฐ์ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ๋ ์์ ํ๊ฒ ๋ค์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
์ปค๋ฐcommitํ ๋ด์ฉ์ github์ ์
๋ก๋ํ๋ ๊ฑธ git์์๋ "push"๋ผ๊ณ ํฉ๋๋ค.
์ฆ
๊นํ๋ธgithub = ์๊ฒฉ ์ ์ฅ์,
ํธ์push = ์๊ฒฉ ์ ์ฅ.
์ง์ ํด ๋ณด๊ธฐ
github.com ๊ฐ์
https://github.com/join ๋ฅผ ํตํด ๊นํ ๊ฐ์
์ ํฉ๋๋ค.
์ฃผ์์ฌํญ1: ๊นํ์ ์์ด๋ ๋
ธ์ถ๋๊ฐ ๋์ต๋๋ค. ๊ฐ๋ฐ์์ค๋ฌ์ด ์์ด๋๋ฅผ ์ ์คํ๊ฒ ๊ณ ๋ฆ
์๋ค.
์ฃผ์์ฌํญ2: ๊ฐ์
ํ ์ด๋ฉ์ผ ์ธ์ฆ์ ํด์ผ ๊ฐ์
์ด ์๋ฃ๋ฉ๋๋ค.
์ฐธ, ๊นํ์ ์บ๋ฆญํฐ๋ ์ฅํ ์บฃ์
๋๋ค. ๊ฐ๋ฐ์๋ค ์ฌ์ด์๊ฒ ์ธ๊ธฐ๊ฐ ๋งค์ฐ ๋์ฃ .
์ฅํ ์บฃ ์ด๋ฏธ์ง๋ ์ฌ๊ธฐ์ ๊ตฌ๊ฒฝํ ์ ์์ด์. https://octodex.github.com/
์ ์ฅ์ ์์ฑ
๊ฐ์ ํ์๋ ์ ์ฅ์๋ฅผ ํ๋ ๋ง๋ค์ด ๋ด ์๋ค.
์ด๋ก์ new repository ๋ฒํผ์ ๋๋ฌ์ ์ ์ฅ์๋ฅผ ๋ง๋ญ๋๋ค. ์ฒซ๋ฒ์งธ ์ ์ฅ์ ์ด๋ฆ์ 'hello-world'๊ฐ ์ข๊ฒ ๋ค์.
์๋ ๊ทธ๋ฆผ์ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด ๋ด ์๋ค.
๋ง๋ค๊ณ ๋๋ฉด ์ฌ๋ฌ๋ถ์ ์ฒซ๋ฒ์งธ ์ ์ฅ์๊ฐ ์๊น๋๋ค. ์ด ์ ์ฅ์์ ์ฃผ์๋ฅผ ๋ฉ๋ชจ์ฅ ๋ฑ์ ์ ์ฅํด ๋์ต๋๋ค.
์ฐธ๊ณ ๋ก ์ ์ฅ์ ์ฃผ์์ ๊ท์น์ https://github.com/๋ด์์ด๋/์ ์ฅ์์ด๋ฆ ์
๋๋ค.
๋ฐฉ๊ธ ๋ง๋ ์ ์ ์ฅ์๋ https://github.com/honux77/hello-world ๊ฐ ๋๊ฒ ์ฃ .
Source Tree ์ค์น
git์ ์๋ ๋ช ๋ น์ด ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์.
์ฐ๋ฆฌ๋ ์กฐ๊ธ ๋ ํธํ๊ธฐ git์ ์ฌ์ฉํ๊ธฐ ์ํด์ source tree ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
ํฐ๋ฏธ๋ ๋ช
๋ น์ ๋์ค์ ๋ฐฐ์ฐ์ธ์.
https://www.sourcetreeapp.com/ ์์ ๋ค์ด๋ฐ์ ์ ์์ต๋๋ค.
- ์ฃผ์์ฌํญ1: ์ํ๋ผ์์์ ๊ฐ์ ์ ํด์ผ ํฉ๋๋ค.
- ์ฃผ์์ฌํญ2: bitbucket ๋ฑ์ ์ค์ ์ ํ๋ผ๊ณ ํ๋๋ฐ skipํ๋ ๊ฒ ํธํฉ๋๋ค.
ํด๋ก (Clone)
ํด๋ก Clone
: github์ ์๋ ์ ์ฅ์repository๋ฅผ ๋ด ์ปดํจํฐ๋ก ๋ณต์ฌํด ์ค๋ ๊ฒ. push์ ๋ฐ๋ ์ ์ฐจ์.
ํด๋ก clone = ๊นํ๋ธ repository → ๋ด ์ปดํจํฐ(๋ก์ปฌ)
ํธ์push = ๋ด ์ปดํจํฐ(๋ก์ปฌ) → ๊นํ๋ธ repository
์ฆ ํด๋ก ์ ํ๋ฉด ๋ด ์ปดํจํฐ๋ก github repository์ ๊ฐ์ ํด๋&ํ์ผ์ ๊ฐ์ ธ์ค๊ฒ ๋๋ค.
Source Tree๋ฅผ ํตํด์ ์ ์ฅ์ ํด๋ก (repository Clone)
์ด์ ์์ค ํธ๋ฆฌ๋ฅผ ์คํํด ๋ด ์๋ค.
์์คํธ๋ฆฌ์ 'Clone' ๋๋ '๋ณต์ / ์์ฑ' ๋ฉ๋ด๋ฅผ ํตํด github ์์ ์์ฑํ ์ ์ฅ์๋ฅผ ํด๋ก ํด ์ฌ ์ ์์ต๋๋ค.
์ ๋จ๊ณ์์ ๋ฉ๋ชจ์ฅ์ ๋ถ์ฌ ๋ฃ์๋ ์ ์ฅ์ ์ฃผ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
๋ณดํต "๋ด๋ฌธ์" ์๋์ ์ ์ฅ์ ์ด๋ฆ๊ณผ ๊ฐ์ ์๋ก์ด ํด๋๊ฐ ๋ง๋ค์ด ์ง๋๋ค.
์์ ํ ์คํ ์ด์ง์ ํ์ผ ์ถ๊ฐ
๋ง๋ค์ด์ง ํด๋๋ฅผ ์ด๊ณ ์๋ํฐ ๋ฑ์ ์ด์ฉํด hello.html์ ๋ง๋ค์ด ๋ด
์๋ค.
์ฐธ ์ ์ฅ ์์น๋ Documents/hello-world/๊ฐ ๋๊ฒ ์ฃ ?
hello.html
<!DOCTYPE html>
<html>
<body>
<h1>Hello JS</h1>
<script>
console.log("Hello world!");
</script>
</body>
</html>
์๋ํฐ๋ก ํ์ผ์ ๋ง๋ค๊ณ ์ ์ฅํฉ๋๋ค.
๋ง๋ค๊ณ ๋์ ์์คํธ๋ฆฌ๋ก ๋์๊ฐ ๋ณด๋ฉด ์ํ๊ฐ ๋ณํด ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์์ฑํ ํ์ผ์ด ๋ณด์ด์ฃ ?
์ด๊ฑธ ์คํ ์ด์ง์ ์ฌ๋ ค์ผ ์ปค๋ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ ์คํ ์ด์ง์ ์ฌ๋ฆฌ๊ธฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์คํ ์ด์ง์ ์ฌ๋ผ๊ฐ ํ์ผ = ์ปค๋ฐ๋ ์์ ์ธ ํ์ผ!
์ปค๋ฐํ๊ธฐ commit
์ํ๋ ํ์ผ์ด ์คํ
์ด์ง์ ์ฌ๋ผ๊ฐ๋ค๋ฉด ์ปค๋ฐ์ ํด์ผ ํฉ๋๋ค.
์ปค๋ฐ = ์ธ์ด๋ธ๋ผ๋ ๊ฑฐ ๊ผญ ๊ธฐ์ตํ์ธ์.
์ปค๋ฐ์ ํ๋ฉด ์คํ ์ด์ง์ ์๋ ํ์ผ๋ค์ด ์ปค๋ฐ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
์ปค๋ฐ ์ฃผ์์ฌํญ
์ปค๋ฐ์๋ ์ฃผ์์ฌํญ์ด ์์ต๋๋ค.
- ๋ฐ๋์ ํ ๋ฒ์ ํ๋์ ๋
ผ๋ฆฌ์ ์์
๋ง์ ์ปค๋ฐํฉ๋๋ค.
-> ํ ๋ฒ์ ํ ๋ฌธ์ฅ์ผ๋ก ์ค๋ช ํ ์ ์๋ ๋ด์ฉ ๋จ์๋ก ์ปค๋ฐํ๋ ๊ฒ ์ข๋ค.
-> ์ฌ๋ฌ ์์ ์ ํ๋ค๋ฉด? ์ปค๋ฐ๋ ์ฌ๋ฌ ๋ฒ ํ๋ ๊ฒ ์ข๋ค. (๋ฐ๋ก๋ฐ๋ก, ์ปค๋ฐ๋ฉ์์ง ์ ์ด์) - ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ์ ์ด์ผ ํฉ๋๋ค.
-> ๋ฏธ๋์ ๋์ ๋ด ๋๋ฃ๋ค์ ์ํด ๊ผผ๊ผผํ๊ฒ ์ ์ผ๋ฉด ์ข๋ค.
ํนํ ์ปค๋ฐ ๋ฉ์์ง๋ ๋ฏธ๋์ ์ฌ๋ฌ๋ถ๊ณผ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ฅผ ์ํด์ ๊ผผ๊ผผํ ์ ์ด์ผ ํฉ๋๋ค.
์ปค๋ฐ ๋ฉ์์ง ์์ฑ๋ฒ
- ์ฒซ ์ค์ ๊ฐ๋จํ์ง๋ง ๋ช ํํ๊ฒ ๋ด์ฉ์ ์๋๋ค. (=์ ๋ชฉ)
- ํ ์ค ๋น์ฐ๊ณ
- ๊ทธ ์๋์ ์์ธํ ๋ด์ฉ์ ์ ์ต๋๋ค. (=๋ด์ฉ)
2์ 3์ ์ต์
์ด์ง๋ง ๊ฐ๊ธ์ ์ด๋ฉด ํด ์ฃผ๋ ๊ฒ ์ข์ต๋๋ค.
์๋ ๊ทธ๋ฆผ์ฒ๋ผ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ ์ปค๋ฐํ๊ธฐ๋ฅผ ๋๋ฌ ์ปค๋ฐํฉ๋๋ค.
github์ ์ ๋ก๋ํ๊ธฐ = push
github์ ์ ์ฅ์๋ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ์ ์ฅ์์๋ ๋ฌ๋ผ์ ํ์ผ์ ์ฌ๋ฆฌ๋ ค๋ฉด ๊ฐ๋ณ์ ์ผ๋ก ์ฌ๋ฆด ์ ์์ต๋๋ค.
์
๋ก๋์ ๋จ์๊ฐ ์ปค๋ฐ์ด๊ตฌ์. ์ปค๋ฐ์ ์
๋ก๋ํ๋ ๊ฒ์ ์ฐ๋ฆฌ๋ 'push' ๋ผ๊ณ ๋งํฉ๋๋ค. ํธ์ฌ๋ ์์ฒญ ์ฝ์ต๋๋ค.
์ ์์ ์ผ๋ก ์ปค๋ฐํ๋ฉด push ๋จ์ถ์ "1" ์ด๋ผ๋ ๊ธ์จ๊ฐ ์จ์ง๋๋ฐ, ์ด์ ํธ์ ๋จ์ถ๋ฅผ ๋๋ฅด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๋ฌด์ธ๊ฐ ๋ฌด์์ด ๋ด์ฉ์ด ๋ง์ด ๋์ค๋๋ฐ ์ผ๋จ์ ๋ฌด์ํ๊ณ ํธ์ ํธ์ ๋จ์ถ๋ฅผ ๋ ๋ฒ ๋๋ฆ
๋๋ค. ์์ ํธ๋ํฐ ๊ฒ์ ์๊ฐ์ด ๋๋๊ตฐ์. ๊ตฌ๋ฃจ๊ตฌ๋ฃจ๋ผ๋ ๋งํ๋ ๊ฐ์๊ธฐ ์๊ฐ์ด... ์ฒ์์๋ github ์ธ์ฆ์ฐฝ์ด ๋์ฌ ๊ฒ๋๋ค๋ง, ๋๋ฒ์งธ๋ถํฐ๋ ๋์ค์ง ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ธํ๊ธฐ
์ด์ github.com ์ ์ ์ฅ์๋ก ๊ฐ์๋ฉด ์ ๋ก๋ ๋ด์ฉ์ ๋ณผ ์ ์์ด์. ์ง์! ์น๊ตฌ๋ค์๊ฒ ์๋ํฉ์๋ค!
์ ๋ฆฌ
- ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๊นํ๋ธ ๊ธฐ๋ฅ์ 1%๋ฐ์ ์ ๋๋ค.
- ๋ ๋ง์ ๊ธฐ๋ฅ๋ค์ด ์์ง๋ง, ์ฐ์ ์ค๋ ๋ฐฐ์ด add commit push์ ์ต์ํด์ง๊ณ ๋ ๋ค์์
- branch, merge, checkout ๊ฐ์ ๊ธฐ๋ฅ์ ์์๋ณด๋ฉฐ ํ์ฉํ๋ฉด ๋๋ค.