-
git push, pull, fetch, init, addGithub ๋ฒ์ ๊ด๋ฆฌ 2026. 3. 5. 17:40๋ฐ์ํ
git push: ์๊ฒฉ ์ ์ฅ์๋ก ๋ด ์์ ์ฌ๋ฆผ
๋ก์ปฌ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๋ฉฐ ์ฌ๋ฌ ๋ฒ commit์ผ๋ก ๋ฒ์ ์ ์ฅํ๊ณ ๋ ํ, ์ต์ข ์ ์ผ๋ก ์ด ์ด๋ ฅ์ ์๊ฒฉ ์ ์ฅ์์ธ GitHub ์ ์ ๋ก๋ํด์ผ ํจ
์ด๋ ํ์ฉํ๋ git ๋ช ๋ น์ด = git push
- git push: ๋ก์ปฌ ์ ์ฅ์์ ์์ธ ์ปค๋ฐ๋ค์ ์๊ฒฉ ์ ์ฅ์์ ํด๋น ๋ธ๋์น๋ก ์ ์ก
- ์๋ push ← because, ์ ๊ตํ๊ฒ pushํ๊ธฐ ์ํด์
- push๋๋ฉด ๋ก์ปฌ ํ๊ฒฝ์์ ๊ฐ๋ฐํ ์ฝ๋ ๋ฟ ์๋๋ผ ๊ฐ๋ฐํ๋ฉด์ ์ค๊ฐ์ค๊ฐ commit ํ๋ ์ด๋ ฅ๋ค ๋ํ ์ ๋ก๋๋จ
git pull: ๋ด ๋ธ๋์น์ ์๊ฒฉ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ์when, ๋ก์ปฌ์์ ๊ฐ๋ฐ ์ค์ธ ๋ค๋ฅธ ํ์์ด ๋จผ์ ๋ณธ์ธ์ ์์ ๋ฌผ push ํจ์ผ๋ก ์๊ฒฉ์ ์ฅ์ ๋ด์ฉ ๋ณํ ๋ฐ์
์ด๋ ์๊ฒฉ์ ์ฅ์์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฌ ๋ด ๋ก์ปฌ ๋ธ๋์น์ ๋ฐ์ํด ๊ฐ๋ฐ ๊ณ์ํ๊ณ ์ ํจ
์ด๋ ํ์ฉํ๋ ๋ช ๋ น์ด git pull
- git pull: ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ฐ์ ธ์จ ํ(fetch), ํ์ฌ ๋ธ๋์น์ ์๋์ผ๋ก ํฉ์น๋ merge๋ฅผ ๋์์ ์งํ
git fetch, git pull ๊ตฌ๋ถํด ์ฌ์ฉํ๋ ์ด์
when, ๋ก์ปฌ ํ๊ฒฝ์์ ์์ ํ๋ ์ค ์๊ฒฉ์ ์ฅ์์ ๋ด์ฉ์ ๋ค๋ฅธ ํ์์ด ์์ ํจ
์ด๋ ๋ด๊ฐ ๊ฐ๋ฐํ ๋ด์ฉ์ ์๊ฒฉ์ ์ฅ์์ pushํ๋ ค๊ณ ํ๋ค๋ฉด → ๊ฑฐ์ โ๏ธ
because, ์๊ฒฉ์ ์ฅ์์ ํ์์ ์์ ์ฌํญ์ด ์ด๋ฏธ ๋ฐ์ ๋์ด ์๊ณ , ์ด๋ ์ฐ๋ฆฌ์ push ๋ฅผ ๋ฐ๋๋ค๋ฉด ํ์์ ์์ ์ฌํญ์ด overwrite ๋๋ ์ํฉ ๋ฐ์
⇒ pull ๋์ → git fetch, merge ๋ฅผ ๋ถ๋ฆฌํด ์ฌ์ฉโผ๏ธ
- git fetch: ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ -"๊ฐ์ ธ์ค๊ธฐ๋ง"→ ๋ก์ปฌ ์ ์ฅ์
- fetch ์ดํ, ์๊ฒฉ ๋ธ๋์น์ ๋ก์ปฌ ๋ธ๋์น ๋น๊ตํ๋ฉฐ ์ถฉ๋๋๋ ์ํฉ ๋ฐ์ํ์ง ์๋์ง, ์ถฉ๋ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด๊ฒฐํ๋ฉด ์ข์์ง ํ์ธํ ํ, ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จ๋๋ฉด git merge → ๋ ๋ธ๋์น ๋ณํฉ
- ์์ ํ pushํ๋ ์ต๊ด ๋ค์ด์
command+shift+p > gc(git commit)
๋๊ธฐํ: commit pull, push
/ github์ repository๋ฅผ ๋จผ์ ๋ง๋ค๊ณ cloneํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ ์๊ฒฉ์ ์ฅ์๋ก๋ถํฐ ๋ก์ปฌ ์ ์ฅ์ ๊ตฌ์ฑํ ์ ์์
git init: ๊ธฐ์กด ํด๋ → Git ์ ์ฅ์
๐ก ์ด๋ฏธ ๋ก์ปฌ์์ ๊ฐ๋ฐํ Git์ ์ด์ฉํด ํ์๊ด๋ฆฌ ์๊ฒฉ์ ์ฅ์์ ์ ๋ก๋ํ ์ ์์ง ์์๊น?
- ์ด๋ ๋ก์ปฌ์ ์ฅ์์ ํ์ํ ๋ช ๋ น์ด git init
- git init → ๋ก์ปฌ ์ ์ฅ์๋ฅผ Git ํตํด ๊ด๋ฆฌ ๊ฐ๋ฅ
git add์ ํ์ผ ์ํ
git commit์ ๋ฒ์ ๊ธฐ๋กํ ๋ ํ์ฉ
commit ํ ๋ ์ฌ๋ฌ ํ์ผ ์์ ์ฌํญ ๊ธฐ๋กํด๋ ์ข์ง๋ง, ํ๋์ commit์ ํ๋์ ํ์ผ๋ง ์ ์ฅํ ์ ์๋ค๋ฉด ๋ค๋ฅธ ํ์๋ค์ด commit history ๋ณผ ๋ ์กฐ๊ธ ๋ ์์ํ๊ฒ ๋ณผ ์ ์์ ๊ฒ
์ด๋ ํ์ฉํ๋ ๋ช ๋ น์ด = git add
git add๋ git commit์ ํฌํจ๋ ํ์ผ ์ง์
git add → ํ๋์ ํ์ผ ์ง์ → ํด๋น ํ์ผ stage์ ์ฌ๋ฆผ
ํ์ผ ์ํ:์ํน ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ํ์ผ์ ํฌ๊ฒ Tracked(๊ด๋ฆฌ๋์)/Untracked(๊ด๋ฆฌ๋์ ์๋)๋ก ๋๋
- Tracked ํ์ผ: ์ด๋ฏธ ์ค๋ ์ท ํฌํจ๋์ด ์๋ ํ์ผ๋ก Git์ด ์๊ณ ์๋ ํ์ผ
- ๋๋จธ์ง ํ์ผ ๋ชจ๋ Untracked ํ์ผ: ์ํน ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ ์ค ์ค๋ ์ท์๋ Staging Area์๋ ํฌํจ๋์ง ์์ ํ์ผ
Tracked ํ์ผ์ ์ธ ๊ฐ์ง ์ํ๋ก ๋๋จ
- Unmodified(์์ ํ์ง ์์)
- Modified(์์ ํจ)
- Staged(์ปค๋ฐ์ผ๋ก ์ ์ฅ์์ ๊ธฐ๋กํ )
์ฒ์ ์ ์ฅ์๋ฅผ git cloneํ๋ฉด → ๋ชจ๋ ํ์ผ์ Tracked์ด๋ฉด์ Unmodified์ํ
ใฐ๏ธ because, ํ์ผ Checkoutํ๊ณ ๋์ ์๋ฌด๊ฒ๋ ์์ ํ์ง ์์๊ธฐ ๋๋ฌธ
๋ง์ง๋ง ์ปค๋ฐ ์ดํ ์์ง ์๋ฌด๊ฒ๋ ์์ ํ์ง ์์ ์ํ์์ ์ด๋ค ํ์ผ ์์ ํ๋ฉด Git์ ๊ทธ ํ์ผ Modified ์ํ๋ก ์ธ์
์ค์ ์ปค๋ฐ ์ํด ์ด ์์ ํ ํ์ผ์ Staged ์ํ๋ก ๋ง๋ค๊ณ , Staged ์ํ์ ํ์ผ git commitํ๋ฉด์ ๋ผ์ดํ์ฌ์ดํด(Tracked+Unmodified) ๊ณ์ ๋ฐ๋ณต
๐ ์ ๋ฆฌ:
- git init ๋๋ git clone์ผ๋ก ๋ก์ปฌ ์ ์ฅ์ ์ค๋น
- ์ฝ๋ ์์ , ์๋ฏธ ์๋ ๋จ์๊ฐ ๋์์ ๋ git add๋ก ์คํ ์ด์ง
- git commitํด ๋ฒ์ ๊ธฐ๋ก ๋จ๊น
- if) ํ ์์ ์ธ ์ ์ฅ์๋ผ๋ฉด git fetch/git pull ์์๋ก ๋ณ๊ฒฝ์ฌํญ ๋ฐ์
- ์ถฉ๋ ์ฌ๋ถ ํ์ธ ๋ฐ ํ ์คํธ ํ, git push๋ก ๋์ ๋ณ๊ฒฝ ๋ด์ฉ ๊ณต์
์ฐธ๊ณ ์๋ฃ
boostcourse ใGithub์ผ๋ก ๋ฐ๋ผํ๋ ๋ฒ์ ๊ด๋ฆฌใ
๋ฐ์ํ'Github ๋ฒ์ ๊ด๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] ์ด๋ฏธ ์ฌ๋ผ๊ฐ PR ์์ ํ๋ ๋ฐฉ๋ฒ (commit--amend, push -f) (0) 2026.06.24 Xcode-GitHub ์ฐ๋ํ ๋ ๋ฐ์ํ๋ ์๋ฌ ํด๊ฒฐํ๊ธฐ (0) 2026.03.18 GitHub: Repository, Commit, Issues, Config, Clone (0) 2026.02.26 Git๊ณผ Github (0) 2026.02.25