1. CLI / Vim
- λ§₯μ ν°λ―Έλ, μλμ°λ git bash ν€κΈ°
1) λͺ λ Ήμ΄
- ls : νμΌκ³Ό ν΄λλ₯Ό 보μ¬μ€
- pwd : νμ¬ μμΉλ₯Ό λ§ν΄μ€
- ls μ flag : μ΅μ μ λ»ν¨. -a λ all λ‘ μ¨κΉ νμΌκΉμ§ νμ, -l μ line by line λ‘ ν μ€λ‘ κΉλνκ² μΆλ ₯
- cd : νμΌ μ΄λ / ex) cd Documents/
- mkdir : ν΄λ μμ± / ex) mkdir foldername
- touch : νμΌ μμ± / ex) touch filename.txt
- mv : νμΌ μ΄λ / ex) mv filename.txt foldername/
- cp : λ³΅μ¬ / ex) cp filename.txt filename2.txt
- rm : νμΌ μμ / ex) rm filename.txt
- rm -rf : ν΄λ μμ / ex) rm -rf foldername/
- mv : μ΄λ¦ μμ / ex) mv filename.txt filename2.txt
- cat : μμ±ν λ΄μ© νμΈ / ex) cat filename.txt
- vi : vim μ°½ μ΄κΈ° / ex) vi filename.txt
- code . : vscode λ‘ λμ΄κ°κΈ°
2) Vim μΌλ‘ λ§ν¬λ€μ΄ μμ± λ°©λ²
- vi README.md μ λ ₯ ν λ€μ΄κ°μλ§μ i λλ₯΄λ©΄ insert λͺ¨λ μμ, μμ±ν μ μκ² λ¨
- 1. 2. 3. : μμ μλ 리μ€νΈ
- - , * , + : μμ μλ 리μ€νΈ
- ``` <div></div> ``` : μ½λ λΈλ μ½μ
- **bold** : λ³Όλ체 μ λ ₯
- # : μ λͺ©, # μ΄ λ§μμ§μλ‘ μμμ§
- <!-- μ£Όμ --> : μ£Όμ
- [λ§ν¬ ν μ€νΈ] (λ§ν¬ url) : λ§ν¬ μ½μ
- ![μ΄λ―Έμ§ν μ€νΈ] (μ΄λ―Έμ§ url) : μ΄λ―Έμ§ μ½μ
- *** , ----- : ꡬλΆμ
- μ€λ°κΏμΌλ‘ 곡백μ νννκ³ μΆμΌλ©΄ enter λλ²ν΄μΌ κ³΅λ°±μ΄ λ¨. νλ²λ§ νλ©΄ λΆμ΄λ²λ¦Ό.
- esc λλ₯΄κ³ :wq νλ©΄ μ μ₯νκ³ λκ°κΈ°, :w νλ©΄ μ μ₯, q μ μ₯νμ§ μκ³ μ’ λ£, e! μμ ν κ² λ¬΄μνκ³ νΈμ§ μν
2. Branching Models
1) flow
- git flow : κ° λ¨κ³κ° λͺ νν ꡬλΆλμ΄ μ£Όλ‘ μ¬μ©.
- github flow : μ£Όλ‘ λΌμ΄λΈλ¬λ¦¬(react) μ μ°μ. release λ¨κ³κ° μμ΄ λ°λ‘ λμ΄κ°
2) git flow strategy
- feature - develop - release(μ€μ΄λ μμ ), version - main
3) git flow cheatsheet
- μ΄ νλ‘κ·Έλ¨μ μ΄μ©νλ©΄ μ μμ μ μ½κ² ν μ μμ
- window μ κ²½μ°, git bash μμ git flow init μ λ ₯ν΄μ£Όκ³ enter ν€λ₯Ό λλ¬μ£Όλ©΄ ꡬ쑰λ₯Ό μλμΌλ‘ λ§λ€μ΄μ€
- git flow feature start featurename : feature μμ
- git flow feature finish featurename : feature λ
- feature μ΄λ¦μ μμ νλ λ΄μ©μ λ°λΌ λͺ νν, μμ ν μ¬μ©μ€μΈ λΈλμΉκ° μλλΌλ©΄ λ°λ‘λ°λ‘ μ§μμ£Όλ κ²μ΄ μ’μ
- git flow release start v0.1 : λ²μ 릴리μ¦
- tagging μμ labeling : commit vim μ°½, release note vim μ°½, λ€μ commit vim μ°½
- git push -u origin develop : remote μ μλ develop μΌλ‘ push ν λ, -u λ upstream
- git checkout main : main branch λ‘ μ΄λ
- git push origin main : main μΌλ‘ push
- git push --tags : tag λ₯Ό push
- remote(μ격μ μ₯μ) λ‘ κ°μ tag → create release → Existing tag : Initial Release → λ³Έλ¬Έμ My first release → This is a pre-release 체ν¬(λ² νλ²μ μ΄λΌλ μ리) → publish release λλ₯΄λ©΄ λ
3. Revert
1) Rename : μ΄λ¦ μμ
- κ·Έλ₯ μ΄λ¦μ μμ ν΄λ²λ¦¬λ©΄ μλ νμΌμ deleted κ° λΈ, μ΄λ΄ λλ staging μ κΉμ§ λ€μ μ΄λ¦μ λλ €λμΌλ©΄ λ¨
- git mv README.md unread.txt : git μΌλ‘ μλ €μ£Όλ©΄μ μμ νλ©΄ renamed κ° λΈ, λ€λ§ 물리λ λ³νμμ΄ νΈλ¦¬κ° λ³κ²½λ κ²μ΄κΈ° λλ¬Έμ comitted κ° λΈ
2) Undoing
- μ§κΈκΉμ§ μμ ν κ²μ μ·¨μνκ³ μΆμ λ, μ΅μ μ νμμ€ν¬νλ‘ λλ €λλ κ²
- git restore unread.txt → μνΉνΈλ¦¬ κΉ¨λ / resotre λ³΄λ€ μ€λλ κ²μ checkout
3) Unstaging
- μμ μλ git reset HEAD unread.txt , μμ¦μλ git restore --staged unread.txt
- μ¬κΈ°μ HEAD λ μ΅μ μ΄λΌλ λ»
- git commit --amend : μ΅μ μ»€λ° λ©μμ§ μμ
4) Reset commit
- worst case : reset → μ§μ 3κ°μ commitμ μμ ν ν, remoteμ κ°μ push
- best case : revert → νμ¬ HEADμμ μ§μ μ 3κ°μ commitμ μμλλ‘ κ±°μ¬λ¬ μ¬λΌκ° ν΄λΉ λ΄μμ λν΄ commit, push μν
- revert : git revert --no-commit HEAD~3.. → μμ νλ commit μ μ«μλ§νΌ commit μ μ°μ΄μ€μΌ νκΈ° λλ¬Έμ λ§μ§λ§μ νλ²μ commit νκ² λ€λ λ»μΌλ‘ --no-commit μ μ°κ³ , μ΅μ commit μμ λΆν° 3κ°λ₯Ό μμ νκ² λ€λ λ»μΌλ‘ HEAD~3 μ μμ±νκ³ , 맨 λ€μ .. μ κΌ ν΄μ€μΌ ν¨
4. Git νμ νλ‘μ νΈ
1) νμ₯ : Organization λ§λ€κΈ°
- Github μμ + λ²νΌ λλ₯΄κ³ New organization
- Free Plan μ ν
- Organization account name(ν μ΄λ¦) μμ±, Contact email(λν μ΄λ©μΌ) μμ±, My personal account(κ°μΈ κ³μ ) μ ν
- νμ μ΄λ, λΉμ₯ νμ§ μμλ λ¨. skip λ κ°λ₯
- survey λ ν΄λ μν΄λ μκ΄ μμ, λκ°λ €λ©΄ New Organization
- skip ν νμ μ΄λνλ €λ©΄ invite member μ ν, owner λ νμ₯ κΆνμ΄λ member μ ν
- repository λ§λ€κΈ° : μ΄λ¦ μμ±, public μ ν, license λ mit, create ν΄λ¦νκ³ μμ
2) νμ₯ : μ΄κΈ° Set UP
- Git bash μμ git clone [μ£Όμ] / λ§λ€μ΄μ§ ν΄λΉ repository μ΄λ¦μΌλ‘ λ νμΌλ‘ cd λͺ λ Ήμ΄λ₯Ό ν΅ν΄ μ΄λ
- gitignore.io μ¬μ΄νΈλ‘ κ°μ gitignore νμΌμ λ€μ΄κ° μ½λ μμ±
- Git bash μμ touch .gitignore (νμΌ μμ±), vi .gitignore (μμ ) ν΄μ gitignore.io μμ 볡μ¬ν μ½λ λΆμ¬λ£κΈ°
- README.md νμΌ μμ
- μ΄λ, μ€μ νμΌμ λ€λ₯Έ ν΄λμ λ£μ§ μκ³ λ©μΈμ λκΈ°
- κΈ°λ³Έ μμ ν html, css, js, img λ± νμΌ μμ±ν΄λμΌλ©΄ μ’μ
- git status (μννμΈ) → git add → git commit → git flow init (branch ꡬ쑰 λ§λ€κΈ°) → git push -u origin develop (첫 push)
3) νμ₯, νμ : Issues μμ±
- Issues μμ±μ ν΄μΌ λ μΌμ μμ±νλ κ²
- Issue λ νκΈλ‘ μμ±ν΄λ λ¨. ν μΌμ μ νκ³ ν΄λΉ Issue λ₯Ό ν΄κ²°νλ©΄ μλ£.
- μ λͺ©μ λ³ΈμΈ μ΄λ¦ ν¬ν¨ν΄ κ°λ¨νκ³ λͺ ννκ² λͺ μν κ². λ³Έλ¬Έμ μ€λͺ , ν μΌ, μ°Έμ‘° νμμΌλ‘ μμ±.
- ν μΌμ κ°μ μ μ νκ³ , 체ν¬λ°μ€ νμ©ν κ²
4) νμ₯, νμ : fork λ¨κΈ°
- fork : ν organization μ μ¬λ³Έ, κ°μ κΈ°μ¬ λ°©μ, μλ³Έ 리λͺ¨νΈμ μ¬λ³Έμ λ»ν¨
- ν organization μμ fork λΌλ λ²νΌμ ν΄λ¦ ν Copy the main branch only 체ν¬λ°μ€ ν΄μ
- νμ : Git bash μμ fork λ₯Ό λ μ μ¬λ³Έμ΄ λκ³ μκΈ° μμ κ° λ repository μ μ£Όμλ₯Ό κ°μ Έλ€κ° clone → git clone [μ£Όμ]
- νμ₯ : μ΄λ set up μ μλ£ν μλ³Έ ν΄λκ° λ¨μμμν λ° μ΄ ν΄λλ rm -rf [μλν΄λλͺ ] μΌλ‘ μ§μμ£Όκ³ fork λ¬ μ¬λ³Έ repository λ₯Ό git clone [μ£Όμ]
- git flow init → ls (λ§λ€μ΄μ‘λμ§ νμΈ) → git flow feature start [μ΄λ¦] (feature branch μμ±] → μμ , add, commit → git flow feature finish [μ΄λ¦] → git push -u origin develop (μ΄ν push ν λ -u μμ λ λ¨)
- Github μ fork λ¬ λ΄ repository λ‘ μ΄λν΄μ μλ¨μ λ¬ compare & pull requests ν΄λ¦νκ±°λ, pull requests νμΌλ‘ κ°μ new pull request λ²νΌ ν΄λ¦. κ·Όλ° νμλ₯Ό μΆμ²
- λ°λ λ΄μ©μ΄ λκ°μ branch λ‘ λ€μ΄κ°λλ‘ develop μμ develop μΌλ‘ κ°κ² μ ν, μ΄λ μ€λ₯Έμͺ½μ λ΄ repository λΆν° μ νν΄μ£ΌκΈ°
- pull request μ μ λͺ©, λ΄μ© μμ± : μμ±ν issue μ μ°κ²°λλλ‘ fix(μμ ), close(λ§λ¬΄λ¦¬), resolve(ν΄κ²°) μ€ μλ§μ ν€μλ κ³ λ₯Έ ν μμ # ν΄μ£Όλ©΄ issue μλμμ±μ΄ λΈ / ν€μλλ 볡μν(# μ¬λ¬ κ°) κ³Όκ±°ν λͺ¨λ κ°λ₯(μ: fixed, fixes)
- μλ£λλ©΄ create pull reaquest
5) νμ₯ : Code Review
- pull requests ν λ€μ΄κ°μ
- Reviewers (리뷰ν μ¬λ, νμ₯) μ§μ - Assignees (pull requests ν μ¬λ) μ§μ - Labels (μ΄λ€ κ²μ νλμ§ κ΅¬λΆ) μ§μ
- files changed μμ λ³΄κ³ μ½λ μ + λ²νΌ λλ¬μ 리뷰
- νμΌ λΉ μλ¨ μ€λ₯Έμͺ½μ viewed λΌλ 체ν¬λ°μ€κ° μλλ° ν΅κ³Όν κ²μ 체ν¬, ν΅κ³Ό λͺ»ν κ±°λ viewed λλ₯΄λ©΄ μλ¨
- finish your review ν΄λ¦νκ³ νμΈν΄λ¬λΌκ³ λ΄μ© μμ±, comment(λ¨μν μ μ, ν΄λ λκ³ μν΄λ λκ³ ), approve(μΉμΈ), request changes(λ°λ €) μ€ νλ μ νν΄μ 보λ. μ΄λ λ°λ €μ κ²½μ° λ°λ €λ κ² κ³ μΉ λκΉμ§ λ§μ§ν μ μμ
6) νμ : Request Changes μμ
- Git bash μμ code . ν΄μ vscode λ‘ μ΄λ
- μμ ν μ¬ν μμ
- vscode terminal μΌμ git add → git commit → git push origin develop
- μ΄λ pull reaquest κ° λ«ν λκΉμ§ λμ develop μΌλ‘ push ν΄λ νμ develop κΉμ§ μ μ°κ²°λμ΄ μ°λλ¨
7) νμ₯ : μμ μ¬ν νμΈ
- ν΄κ²°λ κ² νμΈ ν resolve conversation ν΄λ¦
- files changed λ‘ κ°μ viewed 체ν¬, comment μμ± ν approve
- κ·ΈλΌ merge κ°λ₯ν μ΄λ‘μ λ²νΌμΌλ‘ λΈ, μΆκ° μ견λ 맨 νλ¨μ μμ± κ°λ₯, merge ν΄λ¦
8) νμ₯, νμ : pull λ°κΈ°
- Git bash μμ git remote -v νμ λ upstream μ΄ μλ€λ©΄ git remote add upstream [νμ£Όμ] νλ©΄ upstream μ΄ μκΉ
- pull λ°μ λλ νμ develop μ λ°μμΌ ν¨, κ·Έλμ git pull upstream develop
- λ€λ₯Έ μ¬λ μμ λ΄μμ΄ λ΄ develop μ μμ
- λ°λΌμ λ벨λ‘μμ μμ μ ν μ μμ§λ§ νμ§ μλ μ΄μ λ μ€κ°μ€κ° pull μ λ°μμΌ νλ λκ° μ€κΈ° λλ¬Έμ. κ·ΈλΌ λ΄ μμ κ³Ό λ€λ₯Έ μ¬λ μμ μ΄ μΆ©λ ν μ μμ
'π¨ ν¨μ€νΈμΊ νΌμ€ > κ³΅λΆ κΈ°λ‘' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[221021] μ»΄ν¨ν°μ μ΄ν΄, μννΈμ¨μ΄ 곡ν (0) | 2022.11.17 |
---|---|
[221012] JS : μ°μ°μ, ν¨μ (0) | 2022.11.17 |
[220930] μ»΄ν¨ν°μ μ΄ν΄, μννΈμ¨μ΄ 곡ν (0) | 2022.11.17 |
[221003-221007] μ€νλ² μ€ μμ (0) | 2022.10.14 |
[220913-220918] HTML, CSS (1) | 2022.09.19 |