# git version ํ์ธ !
$ git --version
# ๐ฑ git ์ ์ฅ์ ์ด๊ธฐํ. ์ด๊ธฐํ ํ๋ฉด [ .git ] ์ด๋ผ๋ ํด๋๊ฐ ์๊ธฐ๋ฉฐ version๊ด๋ฆฌ ์์๊ฐ๋ฅ !
$ git init
note. --global ์ต์ ์ ๋นผ๊ณ ์ ๋ ฅํ๊ฒ๋๋ฉด Repository๋จ์๋ก ์ค์ ํ๋๊ฒ ์ ๋๋ค.
# ๐ git ๊ธ๋ก๋ฒ ์ค์ ๋ชฉ๋ก ์กฐํ
$ git config --global --list
# ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ์ค์
$ git config --global user.name "User name"
# ๊ธ๋ก๋ฒ ์ด๋ฉ์ผ ์ค์
$ git config --global user.email "git@gmail.com"
# ๊ธฐ๋ณธ ๋ธ๋์น๋ฅผ main์ผ๋ก ์ค์
$ git config --global init.defaultBranch main
# ๐ local git๊ณผ ์๊ฒฉ ์ ์ฅ์(GitHub)์ repository์ ์ฐ๊ฒฐํ๋ค.
$ git remote add origin https://github.com/github-user/github-repository.git
note. ์ฌ๊ธฐ์ origin์ ์๊ฒฉ repository์ ๋ณ์นญ์ด๋ค.
# ๐ github-user์ github-repository ์ ์ฅ์ ๋ณต์ ํ๊ธฐ
$ git clone https://github.com/github-user/github-repository.git
# ๐ ํ์ฌ local ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ์๊ฒฉ ์ ์ฅ์ url ํ์ธ
$ git remote -v
# ๐ ํ์ฌ ์ํ ํ์ธ commitํ ํ์ผ์ด ์๋์ง addํ ํ์ผ์ด ์๋์ง
$ git status
# ๐ ์ ์ฒด ํ์ผ stage์ ์ฌ๋ฆฌ๊ธฐ dot, --all option ๋์ ์ ํ์ผ๋ช
์ ์ฐ๋ฉด ํด๋น ํ์ผ๋ง ์ฌ๋ผ๊ฐ
$ git add .
$ git add --all
# ๐ ์ ์ฒด ํ์ผ unstage. ์คํ
์ด์ง์์ ๋ด๋ฆฌ๊ธฐ. dot ๋์ ์ ํน์ ํ์ผ๋ง ๋ด๋ฆด์๋ ์์.
$ git reset HEAD .
# ๐ธ stage์ ์ฌ๋ผ๊ฐ ํ์ผ,๋๋ ํ ๋ฆฌ commitํ๊ธฐ. ํ์ฌ ์ํ๋ฅผ ์ ์ฅํ๋ค. (ํ์ฌ ์์ ์ ์ฌ์ง ์ฐ๋๊ฒ๊ณผ ๊ฐ์ ๋๋.)
$ git commit -m "commit message"
# ๐ commit log ํ์ธํ๊ธฐ
$ git log
# $ git log ๋ฅผ ํตํด commit hash code๋ฅผ ๋ณต์ฌํ์ฌ ํด๋น ๐ธ ์์ ์ผ๋ก ๋์๊ฐ๊ธฐ.
# hash code๋ง ์์ผ๋ฉด ์, ๋ค๋ก ์ํ๋ ์์ ์ผ๋ก ๋์๊ฐ ์ ์์.
# --hard option ๋ง๊ณ ๋ค๋ฅธ option๋ค๋ ์์ต๋๋ค.
$ git reset --hard 91f61e82b0175d49c4fceda57d8b9133432f124f
# stage์ ์ฌ๋ฆฌ์ง ์์ ํ์ผ ์ค, ๋ณ๊ฒฝ์ฌํญ ํน์ ํ์ผ์ ๋๋๋ฆฌ๊ธฐ
$ git checkout -- test.java
# ๐ commitํ ๋ด์ฉ๋ค์ ์๊ฒฉ ์ ์ฅ์ main branch์ ๋ฐ์ด๋ฃ๊ธฐ.
$ git push origin main
# ์๊ฒฉ ์ ์ฅ์ main branch์ ์ฝ๋๋ค์ local repository์ ๋๊ธฐํํ๋ค.
$ git pull origin main
# ๐ฑ branch ์์ฑํ๊ธฐ
# ํ์ฌ ์ปค๋ฐ ์ํ๋ถํฐ branch๊ฐ ์์ฑ๋๋ฉฐ ์์ฑ ์ดํ๋ก๋ ํ๋์ ํฐ ์ค๊ธฐ์์ ๋ป์ด๋๊ฐ๋ ๊ฐ์ง์ฒ๋ผ ๊ฐ๋ผ์ง๋ค.
# ๊ฐ๋ผ์ง ๊ฐ์ง๋ค, branch๋ค์ ๊ฐ์์ ์ถ์ ์ด๋ค๊ฐ pull request๋ฅผ ํตํด mergeํ๋ฉด ๋ค์ ํฉ์น ์ ์์ !
$ git branch branchname
# ๐ ํ์ฌ branch ํ์ธํ๊ธฐ
$ git branch
$ git checkout branch002
# branch ์ญ์ ํ๊ธฐ
$ git branch -d branch002
# git tag ์์ฑํ๊ธฐ
$ git tag <tag-name>
# ํน์ ์ปค๋ฐ์ ํ๊ทธ ์์ฑํ๊ธฐ (์ถ๊ฐํ๊ธฐ)
$ git tag <tag-name> <commit-identifier>
# local tag๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๊ธฐ
$ git push origin <tag-name>
# local์ ์์ฑ๋์ด ์๋ ์ ์ฒด ํ๊ทธ ํธ์ํ๊ธฐ.
$ git push origin --tags
# origin tag ์ญ์ ํ๊ธฐ
$ git push origin :<tag-name>