Search

Git νŒ€ ν˜‘μ—… 버전 관리

β€’
Github 원격 μ €μž₯μ†Œ 생성
β€’
Github νŒ€μ› μ΄ˆλŒ€
β€’
Clone
β€’
Branch 관리
β—¦
Branch 생성
β—¦
Branch 제거
β—¦
Branch μ „ν™˜
β–ͺ
git switch
β–ͺ
git checkout
β€’
Push
β—¦
졜초 ν”„λ‘œμ νŠΈ Commit & Push (main)
β€’
Pull
β—¦
νŒ€μ›μ΄ 졜초 ν”„λ‘œμ νŠΈ Pull
β€’
Checkout
β—¦
(main) (mybranch)
β€’
Coding
β—¦
(mybranch) μ—μ„œ μ½”λ”©
β—¦
Commit
β—¦
push
β€’
Merge
β—¦
Merge - (mybranch) (main)
β—¦
Pull Request
β€’
이λ ₯ 관리
β—¦
git status
β—¦
git log
β—¦
git reset
β—¦
git revert
β—¦
git cherry-pick
β€’
Issue
β€’
DiscussionsΒ 
β€’
Actions
β€’
Projects
β€’
Wiki

Github 원격 μ €μž₯μ†Œ 생성

β€’
[New] or [Create Repository]
β€’
New Repository
β—¦
Repository Name
β—¦
Description
β—¦
Public or Private
β—¦
init Repository
β–ͺ
Add README
β–ͺ
Add .gitignore
β–ͺ
Choose a license
β€’
[Create Repository]
β€’
Finish

[New] or [Create Repository]

New Repository

β€’
Repository Name
β€’
Description
β€’
Public or Private
β€’
init Repository
β—¦
Add README
β—¦
Add .gitignore
β—¦
Choose a license

[Create Repository]

Finish

Github νŒ€μ› μ΄ˆλŒ€ν•˜κΈ°

1.
Settings > Collaborators and teams
2.
[Add people]
3.
νŒ€μ› 아이디(이메일) μž…λ ₯
4.
νŒ€μ› : 이메일 접속 > [View invitation]
5.
νŒ€μ› : [Accept Invitation]

Settings > Collaborators and teams

[Add people]

νŒ€μ› 아이디(이메일) μž…λ ₯

νŒ€μ› : 이메일 접속 > [View invitation]

νŒ€μ› : [Accept Invitation]

Clone

원격 μ €μž₯μ†Œλ₯Ό 둜컬 μ €μž₯μ†Œλ‘œ λ³΅μ œν•˜λŠ” λͺ…λ Ήμ–΄
git clone [remote URL]
Bash
볡사

Branch 관리

β€’
Branch 생성
β€’
Branch 제거
β€’
Branch μ „ν™˜
β—¦
git switch
β—¦
git checkout

Branch 생성

μƒˆλ‘œμš΄ 브랜치λ₯Ό 생성할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 브랜치λ₯Ό μƒμ„±ν•˜λ©΄ ν˜„μž¬ 브랜치의 μƒνƒœλ₯Ό λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ 브랜치λ₯Ό λ§Œλ“€μ–΄λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
git branch <branch-name>
Bash
볡사
β€’
git branch: μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
β€’
<branch-name>: μƒˆλ‘œμš΄ 브랜치의 이름을 μ§€μ •ν•©λ‹ˆλ‹€.

Branch 제거

이전에 λ§Œλ“  브랜치λ₯Ό μ œκ±°ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 제거된 λΈŒλžœμΉ˜λŠ” 이λ ₯μ—μ„œ μ™„μ „νžˆ μ‚­μ œλ˜μ§€λŠ” μ•Šκ³ , λ‹¨μˆœνžˆ μ°Έμ‘°λ₯Ό μ§€μ›λ‹ˆλ‹€.
git branch -d <branch-name>
Bash
볡사

Branch μ „ν™˜

ν˜„μž¬ μž‘μ—… 쀑인 브랜치λ₯Ό λ³€κ²½ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. μž‘μ—… 디렉토리와 μŠ€ν…Œμ΄μ§• μ˜μ—­μ˜ μƒνƒœλŠ” λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
β€’
git switch
β€’
git checkout
git switchλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€. git switchλŠ” λͺ…ν™•ν•œ λͺ©μ μœΌλ‘œ μ„€κ³„λ˜μ—ˆμœΌλ©°, μ‚¬μš©μž μ‹€μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 더 κ°„κ²°ν•˜κ³  μ§κ΄€μ μž…λ‹ˆλ‹€.

git switch

주어진 브랜치둜 μ „ν™˜ν•©λ‹ˆλ‹€. Git 2.23 μ΄μƒμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.
git switch <branch-name>
Bash
볡사

git checkout

주어진 브랜치둜 μ „ν™˜ν•©λ‹ˆλ‹€. Git 2.23 미만의 λ²„μ „μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.
git checkout <branch-name>
Bash
볡사

Push

β€’
졜초 ν”„λ‘œμ νŠΈ Push (main)

Push

둜컬 μ €μž₯μ†Œμ˜ 컀밋을 원격 μ €μž₯μ†Œλ‘œ μ—…λ‘œλ“œν•˜λŠ” λͺ…λ Ήμ–΄
git push <remote> <branch>
Bash
볡사
git push origin main
Bash
볡사

졜초 ν”„λ‘œμ νŠΈ Commit & Push (main)

1.
μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈ 생성
2.
μŠ€ν…Œμ΄μ§•
3.
Commit & Push

μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈ 생성

νŒ€μ›λ“€κ³Ό ν˜‘μ—…ν•  초기 ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•œλ‹€.

μŠ€ν…Œμ΄μ§•

μŠ€ν…Œμ΄μ§• μ˜μ—­(Staging Area)은 Gitμ—μ„œ λ³€κ²½λœ 파일 쀑 μ»€λ°‹ν•˜λ €λŠ” νŒŒμΌλ“€μ„ μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜λŠ” κ³΅κ°„μž…λ‹ˆλ‹€.
β€’
μŠ€ν…Œμ΄μ§•
β€’
μŠ€ν…Œμ΄μ§• μ·¨μ†Œ

μŠ€ν…Œμ΄μ§•

β€’
파일 μŠ€ν…Œμ΄μ§•
git add <file>
Bash
볡사
β€’
λͺ¨λ“  λ³€κ²½ 파일 μŠ€ν…Œμ΄μ§•
git add .
Bash
볡사

μŠ€ν…Œμ΄μ§• μ·¨μ†Œ

β€’
파일 μŠ€ν…Œμ΄μ§• μ·¨μ†Œ
git restore --staged <file>
Bash
볡사
β€’
λͺ¨λ“  파일 μŠ€ν…Œμ΄μ§• μ·¨μ†Œ
git restore --staged .
Bash
볡사

Commit & Push

변경사항 적용 및 원격 μ—…λ‘œλ“œ
컀밋 λ©”μ‹œμ§€λŠ” ν•„μˆ˜μ μœΌλ‘œ μž‘μ„±ν•΄μ•Όν•œλ‹€.
git commit -m "컀밋 λ©”μ‹œμ§€" git push origin main
Bash
볡사

Pull

β€’
νŒ€μ›μ΄ 졜초 ν”„λ‘œμ νŠΈ Pull

Pull

원격 μ €μž₯μ†Œμ˜ λ³€κ²½ 사항을 둜컬 μ €μž₯μ†Œλ‘œ κ°€μ Έμ˜€λŠ” μž‘μ—…
git pull <remote> <branch>
Bash
볡사

Checkout

β€’
(main) (mybranch)

Checkout

λ‹€μ–‘ν•œ μš©λ„λ‘œ μ‚¬μš©λ˜λ©°, 주둜 브랜치 μ „ν™˜κ³Ό 파일 λ˜λŒλ¦¬κΈ°μ— μ‚¬μš©
git checkout <branch-name>
Bash
볡사

Coding

β€’
(mybranch) μ—μ„œ μ½”λ”©
β€’
Commit
β€’
push

(mybranch) μ—μ„œ μ½”λ”©

각 νŒ€μ›λ“€μ΄ 자기 branch μ—μ„œ μ½”λ“œ μž‘μ—…μ„ μ§„ν–‰ν•œλ‹€.
각 branch μ—μ„œ μž‘μ—…μ„ μ§„ν–‰ν•˜κ³  톡합을 ν•  λ•Œμ—λŠ” main branch 에 merge ν•©λ‹ˆλ‹€.

Commit

변경사항 적용
git commit -m "컀밋 λ©”μ‹œμ§€"
Bash
볡사

push

원격 μ—…λ‘œλ“œ
git push origin main
Bash
볡사

Merge

β€’
Merge - (mybranch) (main)
β€’
Pull Request

Merge - (mybranch) (main)

두 개의 λ‹€λ₯Έ 브랜치λ₯Ό λ³‘ν•©ν•˜λŠ” λͺ…λ Ήμ–΄
git merge <branch-name>
Bash
볡사
β€’
main mybranch
β€’
mybranch main

main mybranch

ν˜„μž¬κΉŒμ§€ ν†΅ν•©λœ ν”„λ‘œμ νŠΈλ₯Ό λ‚˜μ˜ branch둜 κ°€μ Έμ˜€κΈ° μœ„ν•΄ λ³‘ν•©ν•©λ‹ˆλ‹€.
1.
mybranch 둜 branch μ „ν™˜
2.
main 을 merge
git checkout mybranch
Bash
볡사
git merge main
Bash
볡사

mybranch main

ν˜„μž¬κΉŒμ§€ κ°œλ°œν•œ λ‚˜μ˜ branch λ‚΄μš©μ„ main 으둜 ν†΅ν•©ν•˜κΈ° μœ„ν•΄ λ³‘ν•©ν•©λ‹ˆλ‹€.
1.
main 둜 branch μ „ν™˜
2.
mybranch λ₯Ό merge
git checkout mybranch
Bash
볡사
git merge mybranch
Bash
볡사

Pull Request

GitHub와 같은 ν˜‘μ—… ν”Œλž«νΌμ—μ„œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ—κ²Œ μžμ‹ μ˜ λ³€κ²½ 사항을 κ²€ν† ν•˜κ³  병합해 달라고 μš”μ²­ν•˜λŠ” κΈ°λŠ₯

이λ ₯ 관리

β€’
git status
β€’
git log
β€’
git reset
β€’
git revert
β€’
git cherry-pick

Issue

ν”„λ‘œμ νŠΈμ—μ„œ λ°œμƒν•˜λŠ” 버그, κΈ°λŠ₯ μš”μ²­, 질문, μž‘μ—… μš”μ²­ 등을 μΆ”μ ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
β€’
μš©λ„: 버그 리포트, κΈ°λŠ₯ μš”μ²­, 질문, μž‘μ—… ν• λ‹Ή, 진행 상황 좔적.

DiscussionsΒ 

ν”„λ‘œμ νŠΈμ— λŒ€ν•œ 비곡식적인 λŒ€ν™”λ₯Ό λ‚˜λˆ„κ±°λ‚˜ νŒ€ λ‚΄μ—μ„œ 아이디어λ₯Ό λ…Όμ˜ν•  수 μžˆλŠ” κ³΅κ°„μž…λ‹ˆλ‹€.
μ΄κ³³μ—μ„œ μ‚¬μš©μžλŠ” νŠΉμ • μ£Όμ œμ— λŒ€ν•΄ λ…Όμ˜ν•˜κ±°λ‚˜ 아이디어λ₯Ό κ³΅μœ ν•˜λ©°, μ§ˆλ¬Έμ„ ν•˜κ±°λ‚˜ ν”Όλ“œλ°±μ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
μš©λ„: 아이디어 λΈŒλ ˆμΈμŠ€ν† λ°, ν”Όλ“œλ°± μˆ˜μ§‘, 비곡식적 λŒ€ν™”, νŒ€ λ‚΄ μ˜μ‚¬μ†Œν†΅.

Actions

GitHub Actions의 μžλ™ν™”λœ μ›Œν¬ν”Œλ‘œμš°μ™€ CI/CD(지속적 톡합/지속적 배포) μž‘μ—…μ„ μ„€μ •ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μ„Ήμ…˜μž…λ‹ˆλ‹€.
μžλ™ν™” μž‘μ—…μ„ μ •μ˜ν•˜κ³  μ‹€ν–‰ν•˜μ—¬ μ½”λ“œμ˜ λΉŒλ“œ, ν…ŒμŠ€νŠΈ, 배포 등을 μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Projects

μž‘μ—… 관리와 ν”„λ‘œμ νŠΈ κ³„νšμ„ μœ„ν•œ λ„κ΅¬μž…λ‹ˆλ‹€.
Kanban λ³΄λ“œ μŠ€νƒ€μΌμ˜ ν”„λ‘œμ νŠΈ λ³΄λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ—…μ„ μ‹œκ°μ μœΌλ‘œ κ΄€λ¦¬ν•˜κ³ , 이슈 및 ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό μž‘μ—… ν•­λͺ©μœΌλ‘œ μΆ”κ°€ν•˜μ—¬ 진행 상황을 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
μš©λ„: μž‘μ—… 관리, ν”„λ‘œμ νŠΈ κ³„νš, 진행 상황 μ‹œκ°ν™”.

Wiki

ν”„λ‘œμ νŠΈ λ¬Έμ„œν™”λ₯Ό μœ„ν•œ κ³΅κ°„μž…λ‹ˆλ‹€.
ν”„λ‘œμ νŠΈμ— κ΄€λ ¨λœ λ¬Έμ„œ, κ°€μ΄λ“œλΌμΈ, 개발 λ¬Έμ„œ, FAQ 등을 μž‘μ„±ν•˜μ—¬ νŒ€μ›λ“€κ³Ό κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
μš©λ„: λ¬Έμ„œν™”, 개발 κ°€μ΄λ“œ, νŒ€ λ‚΄ 정보 곡유, 지식 베이슀 ꡬ좕.
1.
원격 μ €μž₯μ†Œ 관리:
β€’
git remote add <name> <url>: 원격 μ €μž₯μ†Œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.
β€’
git remote -v: 원격 μ €μž₯μ†Œ λͺ©λ‘κ³Ό URL을 ν™•μΈν•©λ‹ˆλ‹€.
2.
브랜치 관리:
β€’
git branch: 브랜치 λͺ©λ‘μ„ ν™•μΈν•˜κ±°λ‚˜ μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
β€’
git checkout <branch>: νŠΉμ • 브랜치둜 μ „ν™˜ν•©λ‹ˆλ‹€.
β€’
git merge <branch>: λ‹€λ₯Έ 브랜치의 λ³€κ²½ 사항을 ν˜„μž¬ λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€.
3.
원격 μ €μž₯μ†Œμ™€ 동기화:
β€’
git pull: 원격 μ €μž₯μ†Œμ—μ„œ λ³€κ²½ 사항을 가져와 ν˜„μž¬ λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€.
β€’
git push: 둜컬 λ³€κ²½ 사항을 원격 μ €μž₯μ†Œλ‘œ ν‘Έμ‹œν•©λ‹ˆλ‹€.
4.
좩돌 ν•΄κ²°:
β€’
좩돌이 λ°œμƒν–ˆμ„ λ•Œ, git mergetool 등을 μ‚¬μš©ν•˜μ—¬ μΆ©λŒμ„ ν•΄κ²°ν•©λ‹ˆλ‹€.
5.
ν˜‘μ—… κΈ°λŠ₯:
β€’
GitHub, GitLab, Bitbucket λ“±μ˜ ν”Œλž«νΌμ„ μ‚¬μš©ν•˜μ—¬ 이슈 νŠΈλž˜ν‚Ή, μ½”λ“œ 리뷰, ν”„λ‘œμ νŠΈ 관리 λ“±μ˜ ν˜‘μ—… κΈ°λŠ₯을 ν™œμš©ν•©λ‹ˆλ‹€.