1. GitHub μΈν
1.1. GitHub κ°μ
νκΈ°1.2. Repository μμ±νκΈ°1.3. GitHubμ νμΌ μ¬λ¦¬κΈ°1.3.1. GUI, CLIλ₯Ό μ΄μ©νμ¬ GitHubμ μ¬λ¦¬κΈ°1.3.2. Repository λ΄ νμν΄λ μμ±νκΈ°2. git clone3. git pull4. git add, git commit, git push4.1 git add, git commit, git push4.2 git push password μλ¬4.2.1. (μ€μ΅) token λ°κΈνκΈ°4.2.2. SSH Key μμ±νκΈ°
Β
1. GitHub μΈν
1.1. GitHub κ°μ νκΈ°
μλ νμ΄μ§λ‘ λ€μ΄κ° νμκ°μ
μ ν΄μ£ΌμΈμ! λ©μΌ μΈμ¦κΉμ§ νμ
μΌ ν©λλ€.
Β
μνλ μ΄λ©μΌμ μ
λ ₯νκ³ Sign up for GitHubμ ν΄λ¦νμ ν νμκ°μ
μ μ§νν©λλ€.
Β
νμ κ°μ
ν 4.2λ‘ κ°μ tokenλ°κΈμ λ¨Όμ μ§νν΄μ£ΌμΈμ. νμ¬ λΉλ°λ²νΈ μΈμ¦μ μ§μνμ§ μμ΅λλ€.
Β
1.2. Repository μμ±νκΈ°
λ‘κ·ΈμΈμ΄ λμλ€λ©΄ μλ Create repositoryλ₯Ό ν΄λ¦ν©λλ€.
μ΄λ―Έ λ§λ€μ΄μ§ repositoryκ° μλ€λ©΄ μλμ²λΌ Newλ₯Ό ν΄λ¦ν΄μ£ΌμΈμ.
Β
λ νμ§ν 리 μ΄λ¦μ μ€μ νκ³ Public(곡κ°)/Private(λΉκ³΅κ°)λ₯Ό μ€μ νμ ν, Add a README fileμ ν΄λ¦νμ¬ README fileμ μΆκ°ν©λλ€. μ€μ μ΄ μλ£λλ©΄ Create Repositoryλ₯Ό ν΄λ¦ν©λλ€.
- λμ€μ μ€μ νμμ Publicκ³Ό Private μνΈ λ³κ²½ κ°λ₯ν©λλ€.
- Add a README fileμ λ³΄ν΅ μ²΄νΉμ νμ§ μκ³ μμ±νμ§λ§, κ°νΈν μ€μ΅μ μν΄ μ²΄νΉνμ¬ μμ±νκ³ μ€μ΅νλλ‘ νκ² μ΅λλ€. 체νΉμ ν κ²κ³Ό 체νΉμ νμ§ μμ κ² 2κ° λͺ¨λ μ§νν©λλ€.
1.3. GitHubμ νμΌ μ¬λ¦¬κΈ°
1.3.1. GUI, CLIλ₯Ό μ΄μ©νμ¬ GitHubμ μ¬λ¦¬κΈ°
- Add file > Upload File > 001.html
- μ΄κΈ° λ νμ§ν 리 μμ±μ README.md νμΌμ μμ±νμ§ μμμ κ²½μ° ν΄λΉ νλ©΄μ΄ λμ€μ§ μκ³ , μλμ κ°μ git λͺ λ Ήμ΄κ° λμ€κ² λ©λλ€. λκ°μ΄ git bashμ μ λ ₯ν΄μ£Όμλ©΄ README.mdνμΌμ΄ GitHub λ νμ§ν λ¦¬λ‘ λ€μ΄κ°λ κ²μ νμΈν μ μμ΅λλ€.
μ΄λ―Έ λ νμ§ν λ¦¬κ° μλ κ²½μ° 2λ²μ§Έ λμ€λ μ½λλ₯Ό μ€νμμΌμΌ νλλ°μ. μ΄ νμ΄μ§ κ°μ₯ νλ¨μ ν΄λΉ λ΄μ©μ΄ μμ΅λλ€.
1.3.2. Repository λ΄ νμν΄λ μμ±νκΈ°
νλ‘μ νΈλ₯Ό μ§ννλ€λ³΄λ©΄ λ νμ§ν 리μ κ°―μκ° λμ΄λκ² λ κ²λλ€. μ΄λ κ² λμ΄λ λ νμ§ν 리λ₯Ό 체κ³μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄μλ νμ ν΄λμ μμ±μ΄ νμνμ£ . νμ ν΄λλ₯Ό μμ±νκ³ μ νλ λ νμ§ν 리μ λ€μ΄κ° ν, μλ μμλ₯Ό λ°λΌ ν΄λλ₯Ό μμ±ν΄ λ΄
μλ€.
Β
1) μ°μΈ‘ μλ¨μ
Add file
μ ν΄λ¦νκ³ Create new file
μ ν΄λ¦ν©λλ€.Β
2)
/
λ₯Ό κΈ°μ€μΌλ‘ ν΄λκ° λΆλ¦¬λ©λλ€. /{ν΄λλͺ
}
μ μ
λ ₯ν΄μ ν΄λλ₯Ό μμ±ν©λλ€.Β
3) λΉ ν΄λλ μμ±λμ§ μμμ! μμμ νμΌμ μμ±ν΄μ£Όμ΄μΌ μλμ κ°μ΄
commit new file
λ²νΌμ΄ νμ±ν λ©λλ€. Commit new file
λ²νΌμ ν΄λ¦ν©λλ€.Β
4)
githubTest
λ νμ§ν 리μμ test
ν΄λκ° μμ±λμκ³ ν΄λμ νμμ index.html
νμΌμ΄ μμ±λ κ²μ νμΈν μ μμ΅λλ€. index.html νμΌμ κ°κ°μ νμ ν΄λλ‘ λ£κ³ GitHub Pageλ₯Ό μ΄μν κ²½μ° νμ ν΄λλ₯Ό
http://{κ³μ λͺ
}.github.io/{ν΄λλͺ
}/{ν΄λλͺ
}
κ³Ό κ°μ΄ URL ꡬ쑰μ²λΌ μ¬μ©ν μ μμ΅λλ€.
μ) paullabkorea/githubtest/test β μ€μ λ‘λ test ν΄λμ index.htmlλ‘ μ°κ²°λ©λλ€.μ€λ¬΄μμ λ°λ‘ μ μ©ν΄μΌ νλ κ²½μ°κ° μλ κ²½μ°, githubμ μ²μ μ¬μ©νμλ λΆμ κ°λ³κ² GUIλ‘λ§ μ¬μ©νμκ³ μ΅μν΄μ§ λ€μ CLIλ‘ λμ΄κ°μκΈΈ κΆν΄λ립λλ€.
2. git clone
- μ격 μ μ₯μμ μ½λλ₯Ό μ»΄ν¨ν°μ λ°μμ¬ μ μμ΅λλ€. μ μμ
λλ ν 리 λ§λ€κ³ (
mkdir
λͺ λ Ήμ΄) μμ±ν λλ ν λ¦¬λ‘ μ΄λ(cd
λͺ λ Ήμ΄)νκ² μ΅λλ€.
$ mkdir filename $ cd filename $ git clone https://github.com/id/clone-filename.git .
Β
Β
ν΄λ‘ μ μ (.)μ μ°λ μ΄μ λ νμ¬ ν΄λμ ν΄λ‘ λ°κΈ° μν΄μ μ
λλ€. λ§μ½, μ (.)μ μ°μ§ μμ κ²½μ° μ ν΄λλ₯Ό μμ±ν©λλ€.
Β
3. git pull
μ격 μ μ₯μμ μ
λ°μ΄νΈ λ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ λ³ν©ν λ μ¬μ©ν©λλ€.
$ git pull origin main
- μ½λλ₯Ό μμ νκ³ pull λ°μΌλ €νλ λκ΅°κ° μ΄λ―Έ μ½λλ₯Ό μμ νμ κ²½μ°μ μ¬μ©νλ λͺ λ Ήμ΄ μ λλ€. μ¬λ¬λΆμ΄ pushλ₯Ό νλ €κ³ νλλ λκ΅°κ° μ΄λ―Έ pushλ₯Ό ν΄μ pullμ λ°μμΌ νλ μν©μ΄ λκ±°μ£ .
μλλ¦¬μ€ Aμ¬λ clone --- push1 Bμ¬λ clone -------------- pull-push2 Cμ¬λ clone ------------------------------- push3(pull λ°μ§ μμ error)
- λ‘컬 mainκ³Ό μ격 mainμ λ€λ₯Έ λΈλμΉλ‘ λ³΄κ³ λ³ν©ν©λλ€.
git pull --no-rebase
- μκ°μ μμλλ‘ λ³ν©ν©λλ€.
git pull --rebase
4. git add, git commit, git push
4.1 git add, git commit, git push
μ΄λ―Έμ§ νμΌμ λ€μ΄λ‘λ λ°μ κ³³μ μ¬λ¦¬κ³ μλ λͺ
λ Ήμ΄λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.
- κΆνμ΄ μ£Όμ΄μ§ κ²½μ°μλ μμ€μ½λ μμ ν 컀λ°κ³Ό νΈμνκΈ°
$ git status $ git add . $ git commit -m "μΆκ° μμ λ΄μμ λλ€." $ git push origin main
Β
pushκ° μλ£λλ©΄ GitHubμ μ μ¬λΌκ°λμ§ νμΈν©λλ€. pushλ₯Ό νκ² λλ©΄ λ‘컬 μ μ₯μμ μλ μμ€μ½λ λλ νμΌλ€μ΄ GitHubμ μ¬λΌκ°κ² λ©λλ€.
Β
GUI νκ²½μμ νμ€ν 리λ₯Ό νμΈν μ μμ΅λλ€. μλμ²λΌ λκ° μ΄λ€ μμ€μ½λλ₯Ό μμ νλμ§ λ΄μμ νμΈν μ μμ΅λλ€. λλ릴 μλ μμ΅λλ€.
Β
Β
- μ격 μ μ₯μμ λ‘컬 μ μ₯μμ μ±ν¬κ° λ§μ§ μμ(μλ₯Ό λ€μ΄ μ»΄λ° κ°μκ° λ€λ₯΄λ€λμ§) λ‘컬 μ μ₯μλ‘ κ°μ λ‘ λ§μΆκ³ μΆμ λ μ¬μ©νλ λͺ λ Ήμ΄μ λλ€. μ΄ λͺ λ Ήμ΄λ νΌμ λ νμ§ν 리λ₯Ό μ¬μ©ν λ μ¬μ©νμκ³ μ λ νμ μ μ¬μ©ν΄μλ μλλ λͺ λ Ήμ΄μ λλ€.
git push --force
4.2 git push password μλ¬
- (23λ 3μ, λ§₯λΆ) tokenμ λ°κΈνμ§ μμλ readme.md νμΌ μμ΄ λ νμ§ν 리 μμ± ν githubμμ μ μν λͺ λ Ήμ΄λ₯Ό Visual Studio Code ν°λ―Έλμ μ λ ₯νλ©΄ κ°λ¨ν μΉ μΈμ¦λ§μΌλ‘ μ°κ²°μ΄ λ μ μμΌλ μ°Έκ³ λ°λλλ€.(OSμ λ°λΌ μλ μλ μμ΅λλ€.)
push ν λ λ€μκ³Ό κ°μ μλ¬κ° λ° μ μμ΅λλ€. 2021λ
8μ 13μΌλΆν° λΉλ°λ²νΈ μΈμ¦ μ§μμ μ¬μ©νμ§ λͺ»νλλ‘ λ³΄μ μ
λ°μ΄νΈκ° λμκΈ° λλ¬Έμ
λλ€.
remote: support for password authentication was removed on august 13, 2021. please use a personal access token instead.
Β
μμ κ°μ κ²½μ°, λΉλ°λ²νΈ λμ token μ΄λ ssh λκ°μ§ μ€ νλμ μΈμ¦μ μ¬μ©ν΄μΌ ν©λλ€. μ€μ΅μ 4.4.1 token λ°κΈλ§ μ§νν©λλ€.
4.2.1. (μ€μ΅) token λ°κΈνκΈ°
- GitHub μ€λ₯Έμͺ½ μλ¨μ μλ κ°μΈ νλ‘νμ ν΄λ¦ν ν, Settingsλ₯Ό ν΄λ¦ν©λλ€.
- μ’μΈ‘ λ©λ΄ κ°μ₯ νλ¨μ μλ Developer settings > Personal access token > Personal access tokens (classic) > Generate new tokenμ ν΄λ¦ν©λλ€.
- ν΄λ¦μ νμ λ Generate new token (classic)μ μ νν΄μ£ΌμΈμ. ν΄λν° μΈμ¦μ νμ±ν λμλ€λ©΄ μλμ²λΌ ν΄λν° μΈμ¦μ΄ λ΄μ μλ μμ΅λλ€. νμ±ν ν΄λμ§ μμλ€λ©΄ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ μ°½μ΄ λ΄μκ²λλ€.
- μΈμ¦μ λ§μΉλ©΄, ν ν°μ μμ±ν©λλ€. ν ν° μ΄λ¦κ³Ό νκ°ν κΆνμ 체ν¬ν νμ Generate tokenμ ν΄λ¦ν©λλ€. (repoνλλ§ μ²΄ν¬νμ λ μ€μ΅νλλ° μ§μ₯ μμ΅λλ€.)
Β
- μμ±λ ν ν°μ 볡μ¬νκ³ νμν κ³³μ μ¬μ©ν©λλ€. μ΄λ ν ν°μ νλ²λ§ 보μ¬μ§κΈ° λλ¬Έμ μμ ν κ³³μ 보κ΄ν©λλ€. μ°μ λ©λͺ¨μ₯μ 볡μ¬ν΄λμΈμ. λ°κΈλ ν ν°μ λΆμ¬λ κΆνλ§ λ³Ό μ μμ΅λλ€. μ¬λ°κΈμ μν κ²½μ°μλ μ¬λ°κΈνκ³ μ νλ ν ν°μ ν΄λ¦ ν, Regenerate tokenμ ν΄λ¦νλ©΄ ν ν°μ΄ μ¬μμ± λ©λλ€.
Β
- ν ν° λ°κΈμ΄ μλ£λλ©΄ μ΄μ체μ μ λ§κ² μ μ©μν΅λλ€.
- Windows
- Mac Mac OSμ κ²½μ° push λͺ λ Ήμ΄λ₯Ό μ€νν λ μ¬μ ν κ°μ μλ¬κ° λνλ μ μμ΅λλ€. Mac ν€μ²΄μΈμ λ±λ‘λμ΄ μλ GitHub κΆν μ λ³΄κ° ID/Passwordλ‘ λμ΄ μκΈ° λλ¬ΈμΈλ°μ. μ΄λ΄ κ²½μ°μλ GitHubμ κΆν μ 보λ₯Ό μμ λ°κΈλ°μ ID/Personal Access TokenμΌλ‘ λ³κ²½ν΄μ£Όμ΄μΌ ν©λλ€. μλμ μμμ λ°λΌ λ³κ²½ν΄λ³΄μΈμ!
μ μ΄ν > μ¬μ©μ κ³μ > μ격 μ¦λͺ
κ΄λ¦¬μ > Windows μ격μ¦λͺ
> git:https//github.com μ°ΎκΈ° > νΈμ§ > μνΈλ₯Ό tokenμΌλ‘ λ체
1) ν€μ²΄μΈ μ κ·Ό (Keychain Access app)
Β
2) github.com μ°ΎκΈ°
github.comμ΄ μμΌμ κ²½μ°μλ λΉ¨κ°μ λ°μ€ λ²νΌμ ν΄λ¦ ν μΆκ°νμλ©΄ λ©λλ€.
Β
μλμ κ°μ΄ μ΄λ¦κ³Ό κ³μ μ΄λ¦ μΆκ°νμλ©΄ λ©λλ€.
Β
3) μνΈλ³΄κΈ°(show password)λ₯Ό ν΄λ¦νμ¬ token μνΈλ‘ λ체ν©λλ€.
Β
4) λ§μ½ μλμ κ°μ νλ©΄μ΄ λ¨λ©΄ MAC λΉλ°λ²νΈλ₯Ό μ
λ ₯νμλ©΄ λ©λλ€.
Β
4.2.2. SSH Key μμ±νκΈ°
- ssh keyλ₯Ό μμ±ν©λλ€. GitHub κ³μ μμ± μ μ¬μ©ν μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ₯Ό μ λ ₯ν©λλ€.
$ ssh-keygen -t rsa -C "email@example.com" Enter file in which to save the key (/c/Users/paullab/.ssh/id_rsa): Enterλ₯Ό λλ¦ λλ€. Enter passphrase (empty for no passphrase): github password Enter same passphrase again: github password
Β
- 곡κ°ν€λ₯Ό κ°μ Έμ΅λλ€. 곡κ°ν€κ° μΆλ ₯λλ©΄ 볡μ¬ν©λλ€.
$ cat ~/.ssh/id_rsa.pub
Β
- GitHub μλ¨μ μλ κ°μΈ νλ‘νμ ν΄λ¦ν ν, Settingsλ₯Ό ν΄λ¦ν©λλ€.
Β
- μ’μΈ‘ λ©λ΄μ SSH and GPG keys > New SSH keyλ₯Ό ν΄λ¦νμ¬ SSH Key μ΄λ¦κ³Ό Keyμ 볡μ¬ν 곡κ°ν€λ₯Ό λΆμ¬λ£μ΅λλ€.
Β
- SSH Key 곡κ°ν€κ° μ λ±λ‘λ κ²μ νμΈν μ μμ΅λλ€.
Β
- λ νμ§ν λ¦¬κ° μ΄λ―Έ μλ€λ©΄ 2λ²μ§Έ μ¬ν μ ν
git remote add origin https://github.com/paullabkorea/githubtest.git - https://github.com/paullabkorea/githubtest.gitμ μ₯μλ₯Ό originμ΄λΌλ μ΄λ¦μΌλ‘ μ°κ²° λ±λ‘ git branch -M main - νμ¬ λ‘컬μμ masterλ‘ λμ΄ μλ κΈ°λ³Έ λΈλμΉλ₯Ό mainμΌλ‘ μ€μ - κΈ°λ³Έ λΈλμΉλͺ λ³κ²½(git config --global init.defaultbranch main)μ ν΄λμ ¨μΌλ©΄ 2λ²μ§Έ μλ΅ κ°λ₯ git push -u origin main - originμ격 μ μ₯μμ main λΈλ μΉμ νμ¬ λΈλμΉ μ°κ²°(--set-upstream(λ¨μΆ : -u) )
Β