-
git config --global
๋กํ๋ฉด ์ ์ญ ์ผ๋ก ํ์ธ ๋ณ๊ฒฝํ ์ ์๋ค. -
์ ์ ์ด๋ฆ ํ์ธ
git config user.name
-
์ ์ ์ด๋ฆ ๋ณ๊ฒฝ
git config user.name "๋ณ๊ฒฝํ ์ ์ ๋ค์"
-
๊ณ์ ์ด๋ฉ์ผ ํ์ธ
git config user.email
-
๊ณ์ ์ด๋ฉ์ผ ๋ณ๊ฒฝ
git config user.email "๋ณ๊ฒฝํ๊ณ ์ํ๋ ๊นํ ์ด๋ฉ์ผ ์ฃผ์"
-
๊ณ์ ์ ์ค
git config --list
-
ssh agent์ ๋ฑ๋ก
ssh-add ํ์ผ๋ช
orssh-add ~/.ssh
๋ค๋ฅธ๋๋ ํ ๋ฆฌ์์ ์ ๊ทผํ์ฌ ์คํCould not open a connection to your authentication agent.
๋ฉ์์ง๊ฐ ๋จ๋ฉดeval $(ssh-agent)
์คํํ ์ฌ์๋ -
ssh agent ๋ฑ๋ก ํ์ธ
ssh-add -l
-
github ์ฌ์ดํธ ์ด๋ > ๋ก๊ทธ์ธํ ์ฐ์ธก์๋จ ๋ด์์ด์ฝ ํด๋ฆญ > settings > ์ผ์ชฝ๋ฉ๋ด > SSH and GPG keys > .pub ํ์ผ ๋ด์ฉ์ "key" ์์ญ์ ๋ถ์ฌ๋ฃ๊ธฐ
-
OS๋ฒ์ ผ์ ๋ง๊ฒ ์ค์น : git download
-
์ฌ์ฉ์์ ๋ณด ๋ฑ๋ก
- ํ๋ก์ ํธ ํ๋์์ "--global"์ ๋นผ๋ฉด ํ๋ก์ ํธ๋ง๋ค ์ค์ ํ ์์๋ค.
git config --global user.name '์ด๋ฆ' git config --global user.email '๋ฉ์ผ์ฃผ์@example.com'
- ํธ์ง๊ธฐ ์ฐ๊ฒฐ (์๋ํฐํ๋ฌ์ค)
git config --global core.editor "'C:/Program Files/EditPlus/editplus.exe' -multiInst -nosession"
- ์ค์ ํ์ธ : ์ถ์ฝ
git config -l
git config --list
- git commit ์ํํ์ธ
git log
- git commit ๋ณ๊ฒฝ ์์ธ ํ์ธ
git log -p
- ์๊ฒฉ ์ ์ฅ์ ํ์ธ
git remote -v
Description
: ์ ์ฅ์ ์ค๋ช
Public
or Private
: ๊ณต๊ฐ ์ฌ๋ถ (ํธ์คํ
ํ ๊ฒฝ์ฐ Public ์ผ๋กํดํจ)
Add a README file
: ๋ฆฌ๋๋ฏธ ํ์ผ ์์ฑ์ฌ๋ถ
Add .gitignore
: ์ ์ฅ์์ ๋๊ธฐํ ๋์ง ์์ ํ์ผ, ํจํด๋ฑ๋ก
Choose a license
: ๋ผ์ด์ผ์ค ๋ฑ๋ก
GNU General Public License(GPL) 2.0
- ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์ ์๊ถ ํ์, ๋ณด์ฆ์ฑ ์์ด ์๋ค๋ ํ์ ๋ฐ GPL์ ์ํด ๋ฐฐํฌ๋๋ค๋ ์ฌ์ค ๋ช ์ - ์ํํธ์จ์ด๋ฅผ ์์ ํ๊ฑฐ๋ ์๋ก์ด ์ํํธ์จ์ด๋ฅผ ๋ณํฉ(Dynamic linking ํฌํจ)์ํค๋ ๊ฒฝ์ฐ GPL์ ์ํด ์์ค ์ฝ๋ ์ ๊ณต - GPL ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ, ์์ค ์ฝ๋ ๊ทธ ์์ฒด๋ฅผ ํจ๊ป ๋ฐฐํฌํ๊ฑฐ๋ ๋๋ ์์ค์ฝ๋๋ฅผ ์ ๊ณต๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๋ฅผ ํจ๊ป ์ ๊ณต
MIT License
- ๋ผ์ด์ผ์ค์ ์ ์๊ถ ๊ด๋ จ ๋ช ์๋ง ์ง์ผ์ฃผ๋ฉด ๋๋ ๋ผ์ด์ผ์ค์ด๋ค. - ์ด ์ํํธ์จ์ด๋ฅผ ๋๊ตฌ๋ผ๋ ๋ฌด์์ผ๋ก ์ ํ์์ด ์ทจ๊ธํด๋ ์ข๋ค. - ์ ์ ๋๋ ์ ์๊ถ์๋ ์ํํธ์จ์ด์ ๊ดํด์ ์๋ฌด๋ฐ ์ฑ ์์ ์ง์ง ์๋๋ค.
git init
git add README.md
git commit -m "์ปค๋ฐ ๋ด์ฉ"
git branch -M main
git remote add origin <์ ์ฅ์ ์ฃผ์>
git push -u origin main
- ํ๋ก์ ํธ ํ
๋ฉ๋ด ์์:
Settings
- ์ผ์ชฝ๋ฉ๋ด : pages > Branch > None | main (์๋น์คํ ๋ธ๋ฐ์น ์ ํ) > save
- ๋ฐ์ ์๊ฐ์ด ํ์ํจ ์งํ ์ํฉ ๋ณด๊ธฐ ์์ ํ์ธํ ์ ์์.
- ์งํ ์ํฉ ๋ณด๊ธฐ : ํ๋ก์ ํธ ํ
๋ฉ๋ด์์
Actions
> pages build and deployment
- ํ๋ก์ ํธ ํ
๋ฉ๋ด ์์:
Settings
- ์ผ์ชฝ๋ฉ๋ด :
Collaborators
> Manage access :Add people
๋ฒํผ > ๊นํ๋ธ ๊ฐ์ ๋ฉ์ผ ์ฃผ์ - ๊ณต์ ๋ฐ์ ์ฌ๋์ ๋ฉ์ผ์์ ์ด๋์ฅ์ ์น์ธ ํด์ผํจ. "View invitation"
git init
git add --all (git add .)
git commit -m "์ปค๋ฐ ๋ด์ฉ"
git remote add origin <์ ์ฅ์ ์ฃผ์>
git push -u origin main
- add ๋ชฉ๋ก ๋ณด๊ธฐ :
git status
-
์ ์ฅ์์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ํด๋ก ํ๊ธฐ
git clone '์๊ฒฉ์ ์ฅ์ ์ฃผ์'
-
์๋ก์ด ์ด๋ฆ์ ํด๋์ ํด๋ก ํ๊ธฐ
git clone '์๊ฒฉ์ ์ฅ์ ์ฃผ์' './ํด๋๋ช '`
-
ํน์ ๋ธ๋ฐ์น๋ง ์๋ก์ด ํด๋๋ก ํด๋ก ํ๊ธฐ
git clone -b '๋ธ๋ฐ์น์ด๋ฆ' --single-branch '์๊ฒฉ์ ์ฅ์ ์ฃผ์'
-
ํน์ ํด๋๋ง ํด๋ก a. ์ ์ฅ์ ์ด๊ธฐ ํ :
git init
b. Git ์ ์ฅ์ ์ฃผ์ ์ถ๊ฐ :git remote add origin '์๊ฒฉ์ ์ฅ์ ์ฃผ์'
c. git sparse Checkout ํ์ฑํ ํ๋๋ก config ์์ :git config core.sparsecheckout true
d. clone ํ ํด๋์ด๋ฆ(์๊ฒฉ์ ์ฅ์ ์ดํ๊ฒฝ๋ก)์ ํ์๋๊น์ง ๋ช ์echo 'ํด๋๊ฒฝ๋ก'/* >> ./.git/info/sparse-checkout
e. "ํ๋์น๋ช "์ผ๋ก pullํด์ ๊ฐ์ ธ์ค๊ธฐ.git pull origin main
-
mac
sudo xcodebuild -license sudo git clone '์๊ฒฉ์ ์ฅ์ ์ฃผ์'
git clone --recursive '๊ณ์ ๋ฉ์ผ์ฃผ์:์๊ฒฉ์ ์ฅ์ ์ฃผ์'
``` bash
git pull
```
``` bash
git pull origin master
```
- ํด๋ ์์ฑ ๋ฐ ํด๋์ ๊ทผํ.
git init
: ์ด๊ธฐํgit config core.sparseCheckout true
: sparse checkout ๊ฐ๋ฅํ๋๋กํจ.git remote add -f origin [repository URL]
: ๊น ํด๋ก ์ฃผ์echo "[ ๊น์ ๋ฐ๊ณ ์ถ์ ํ์ํ๋์ฃผ์ ]" >> .git/info/sparse-checkout
git pull origin main
: "main" ๋ธ๋ํธ๋ก ๋น๊ฒจ์ค๊ธฐ.
-
์์ ํ๋ ์๋ก์ดํ์ผ, ์์ ํ์ผ stage์ฌ๋ฆฌ๊ธฐ
git add .
-
stage์ฌ๋ฆฐ ํ์ผ์commitํ๋ค , -m ์์๋ ๋ฉ์ธ์ง๋ฅผ ์์ฑํ ์์๋ค.
git commit -m "์ปค๋ฐ ๋ด์ฉ"
-
1,2 ๋ฒ๋์ ํ๋ฒ์ ํ๊ธฐ (์๋ก๋ง๋ ํ์ผ์ ์ปค๋ฐ ๋์ง ์๋๋ค)
git commit -am "์ปค๋ฐ ๋ด์ฉ"
-
stageํ์ผ์ git์ ์๋ฒ์ (origin ์๊ฒฉ์ ์ฅ์) master branch๋ก ์ฌ๋ฆฐ๋ค.
-u
์ต์ ์ ์ฌ์ฉํ๋ฉด ์ต์ด ํ๋ฒ๋ง (์ ์ฅ์๋ช , ๋ธ๋์น๋ช )์ ๋๊ธฐ๊ณ ์ดํ๋git push
ํ๋ฉด ๋์ผ ์ ์ฅ์, ๋ธ๋์น๋ช ์ผ๋ก push ๋๋ค.
git push -u origin master
- ์๊ฒฉ ํ๋์น ์ ๋ณด ์ ๋ฐ์ดํธ
git remote update
git branch '๊ฐ์ง์ด๋ฆ'
git checkout '๊ฐ์ง์ด๋ฆ'
git checkout -b '๊ฐ์ง์ด๋ฆ'
git branch
git log --branches --decorate --graph --oneline
q
stree
-
master๋ ์๊ณ ๋ค๋ฅธ ๊ฐ์ง์ ์๋๊ฑฐ๋น๊ต
git log master..'๊ฐ์ง์ด๋ฆ'
-
์์ค์ฝ๋ ํ์ธ ๋น๊ต
git log -p master..'๊ฐ์ง์ด๋ฆ'
-
ํ๋์น์ ํ์ฌ ์ํ ๋น๊ต
git diff master..'๊ฐ์ง์ด๋ฆ'
-
ํ๋์ง์ ํ์ผ ์ํ ๋น๊ต
git diff --name-status branch1..branch2
-
ํ๋์ง์ ํน์ ํ์ผ ๋น๊ต
git diff branch1:file.txt branch2:file.txt
- ๊ฐ์ง ์ญ์ (๋จธ์ง๋๋ฉด ๊ทธ๋ฅ ์ง์์ง๋ค)
git branch -d '๊ฐ์ง์ด๋ฆ'
- ๊ฐ์ง ๊ฐ์ ์ญ์ (๋จธ์ง๋์ง ์์๋ ๊ทธ๋ฅ ์ง์์ง๋ค.)
git branch -D '๊ฐ์ง์ด๋ฆ'
- ๋ง์คํฐ๋ก ์ด๋ํ ๋ณ๊ฒฝ๋ ๊ฐ์ง๋ฅผ ๋ณํฉ
git checkout master git merge '๊ฐ์ง์ด๋ฆ'
- hard : ๋์๊ฐ๋ ค๋ ์ด๋ ฅ์ดํ์ ๋ชจ๋ ๋ด์ฉ์ ์ง์ ๋ฒ๋ฆฝ๋๋ค.
- soft : ๋์๊ฐ๋ ค ํ๋ ์ด๋ ฅ์ผ๋ก ๋๋์ ๊ฐ์ง๋ง, ์ดํ์ ๋ด์ฉ์ด ์ง์์ง์ง ์์์.
- mixed : (๊ธฐ๋ณธ๊ฐ) ์ด๋ ฅ์ ๋๋๋ ค์ง๋๋ค. ์ดํ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ํด์๋ ๋จ์์์ง๋ง, ์ธ๋ฑ์ค๋ ์ด๊ธฐํ ๋ฉ๋๋ค.
- commit id๋ก ๋๋๋ฆฌ๊ธฐ
git reset --hard 'commit id'
- reset ์ทจ์
git reset --hard ORIG_HEAD
- ๋ก๊ทธ ๋ณด๊ธฐ
git reflog
- ๋ก๊ทธ ๋ณด๊ณ ๋๋๋ฆฌ๊ธฐ
git reset 'id๊ฐ'
- commit id๋ก ๋๋๋ฆฌ๊ธฐ (HEAD๋ "refs/heads/master"๋ฅผ ๊ฐ๋ฅดํค์ง ์๊ณ commit id๋ก ๋ณ๊ฒฝ๋๋ค.)
git checkout 'commit id'
- checkout ์ทจ์ master ํ๋์น ๋ก ๋๋์ ๊ฐ๊ธฐ
git checkout master
-
commit ์ด์ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ (stage ๋ณต๊ตฌ)
git rest -- 'ํ์ผ์ด๋ฆ'
-
add ์ด์ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ(Working directory ๋ณต๊ตฌ)
git checkout -- 'ํ์ผ์ด๋ฆ'
-
1,2 ํ๊บผ๋ฒ์ ๋๋ฆฌ ๋ณต๊ตฌ
git checkout HEAD -- 'ํ์ผ์ด๋ฆ'
-
ํฉ์น๊ธฐ
git merge '๊ฐ์ง ์ด๋ฆ'
-
์ถฉ๋ ๋ด์ฉ ๋ณด๊ธฐ
git status
-
์ถ๋ ์์ค ์ด์ด์ ํ์ธ
<<<<<<< HEAD ๋ง์คํฐ๊ณ์ ์์ค์ฝ๋ ======= ์ ์ฉํ๋ ค๋ ๊ฐ์ง ์์ค์ฝ๋ <<<<<<< '๊ฐ์ง์ด๋ฆ'
-
์ง์ ์์ ํ์ฌ ๋ค์ ์ฌ๋ฆฐ๋ค.
git add '์์ ํ์ผ' git common
-
.git์๋ ๋๋ ํ ๋ฆฌ (์ต์์ ํด๋)์ ๊ฐ์ ".gitignore" ํ์ผ์ ๋ง๋ ๋ค.
fsutil file createnew .gitignore 1
-
ํน์ ํ์ฅ์ ์ ์ธํ๊ธฐ, ํ๋ ์ ์ธํ๊ธฐ ํ์ผ์ ์๋๋ด์ฉ ์ ์ฉ.
*.bak node_modules/
-
ignoreํ์ผ ์ง์ ํธ์ง
- ignore ํจํด ์ฌ์ดํธ ์ฐธ๊ณ itignore.io
- glob programming ์ผ๋ก ์ ์ธ ํจ๋ ๋ง๋ค๊ธฐ glob
-
์ด๋ฏธ์ฌ๋ผ๊ฐ ํ์ผ ์ถ๊ฐ ์ํค๊ธฐ
- .gitignore ์ "*.log"์ถ๊ฐ ํ๊ณ
- ์ ์ธ ์ํค๊ณ ์ถ์ "*.log"ํ์ผ ๋ฆฌ์คํธ ๋ณด๊ธฐ
git rm --dry-run *.log
- ๋ฒ์ ผ ์ปจํธ๋กค์์ ์ ์ธํ๊ณ ์ญ์
git rm *.log
- ๋ฒ์ ผ ์ปจํธ๋กค์์ ์ ์ธํ๊ณ ํ์ผ ๋จ๊ธฐ๊ธฐ
git rm --cached *.log