-
ํจ๊ป ์์ค์ฝ๋ ๊ด๋ฆฌ
-
Git ๊ตฌ์กฐ
- ์๋ฒ - ํด๋ผ์ด์ธํธ
- Server Repository - Local Repository
- Local ์์ ์์ ์๋ฃ ํ commit ํ๋ฉด local์ ๊ทธ์ ์์ผ ๋ฐ์๋จ (.git)
- push (์๋ฒ์ ์ฌ๋ฆผ), pull (์๋ฒ์์ ๊ฐ์ ธ์ด)
-
Git Config
# ๋ฐํํ๋ฉด git bash ์คํ # ๊น ์ค์ ๋ชฉ๋ก git config --list git config user.name # ๋ชจ๋ directory ์ผ๊ด ์ค์ (--global) git config --global user.name <github-name> git config user.email git config --global user.eamil <github-email> git config --list | grep user.* cat ~/.gitconfig
-
Git ํด๋ผ์ด์ธํธ - ์๋ฒ ์ ์ฅ์ ์ฐ๊ฒฐ
# ๋ก์ปฌ ์ ์ฅ์ ๋ง๋ค๊ธฐ git init # ์๋ฒ์ ์ฌ๋ฆฌ๊ธฐ ์ซ์ ๊ฒ ์ธํ touch .gitignore # repository์ ํ์ผ ์ ์ฒด add # working directory - local repository ์ฐ๊ฒฐ๋จ # ์์ง ๋ค์ด๊ฐ ๊ฒ์ ์๋ git add --all # ์ฐ๊ฒฐ๋ ๊ฑธ๋ก ๋ชฝ๋ (-am) local repo์ ๋ฐ์ git commit -am "first commit" # branch check git branch # server repo - local repo pipeline ํต๋ก ์ฐ๊ฒฐ๋จ git remote add origin <git-remote-url> # ์ต์ด์๋ง -u ๋ถ์ (up) # ์๋ฒ์ main ์ค๊ธฐ์ ์์ค ์ฌ๋ฆผ git push -u origin main git pull # ์ถฉ๋ ๋ฌด์ํ๊ณ ๊ฐ์ ๋ก ์ฌ๋ฆผ git push -fu origin main # git clone git clone <git-remote-url>
- SCM (Source Code Management)
- ํ์๊ด๋ฆฌ (์์ค ํ์คํ ๋ฆฌ ๊ด๋ฆฌ)
- ์ปค๋ฐ (์์ ์๋ฃ ์ฒ๋ฆฌ)
- ์ํ๋ผ์์; ์ด์ ํธ๋์ปค
- README.md (์์ ํ์ด์ง)
- markdown ๋ฌธ๋ฒ
- ์๋์ฐ ํ์๊ธฐ๋ก๋ ์ญ์ฌ๋์, bash ์์ ์ฌ๋์
- bash ์
- root ํธ๋ฆฌ: /
- home ๋๋ ํ ๋ฆฌ: ~ (๋ด ๋ฐฉ)
- local repository => .git
- add ํ ์๊ฐ ์์ง local Repo์ ๋ค์ด๊ฐ ๊ฒ์ ์๋๊ณ ๋ค์ด๊ฐ ์ค๋น๋ง ๋ ์ํ
๋ด์ฉ ๋ค์ด๊ฐ๋ ค๋ฉด commit ํด์ผ ํจ - local repo - server repo ํต๋ก ์ฐ๊ฒฐํด์ผ ํจ!
- branch
- main, sub ์ค๊ธฐ
- main ์ค๊ธฐ: origin main (main branch)
- sub ์ค๊ธฐ: main ์ค๊ธฐ์ ์ํฅ ์์ด src ๊ณ ์นจ
์ดํ main ์ค๊ธฐ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด merge - origin main: ์๊ฒฉ์ง์ main (server repo์ main branch)
- git push ์์น
- ์๋๋ฐฉ์ด src ์์ ํจ (๋ด repo - server repo ๋๊ธฐํ ๋์ง ์์ => rejected)
- git pull ๋จผ์ ํ๋ผ๊ณ ๋ฉ์์ง ๋์ด
- ํด๋ ์๋๋ฉด ์ด์ฉ ์ ์์ด git -fu
- git clone ๋ฐ์ผ๋ฉด remote ํ ํ์ ์์
git pushํ ๋๋ -u ์๋ถ์ฌ๋ ๋จ
์์ ๋๋ ํ ๋ฆฌ์์ ํ๊ธฐ (directory ํต์งธ๋ก ๋ง๋ค์ด์ง)
-
41:00
๊ฐ์ ๋ก pushํด์ ๊ธฐ์กด์ ์์ฑํ README.md๊ฐ ์ฌ๋ผ์ก๋๋ฐ, ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ํ๋ ๊ฒ์ด ์ข์๊น์?
(๊ฐ์ push ์ด์ ์ pull์ ํด๋ rejected ์ค๋ฅ๊ฐ ๋ ์ ๊ฐ์ push๋ฅผ ํ ๊ฒ์ด์ง๋ง..)
ํน์ local์ด ์๋๋ผ ๋ฐ๋ก ๊นํ ํํ์ด์ง์์ README.md ํ์ผ์ ์์ ํ๊ณ
์๋ ์ปค๋ฐ ๋ ๊ฒ์ด๋ผ ๋ฐ์ํ๋ ์ค๋ฅ๋ก ์ด์ฉ ์ ์๋ ๊ฑด๊ฐ์?
์๋๋ฉด ์ฌ์ ์ git remote add origin ํ๊ณ pull์ ๋ฏธ๋ฆฌ ํ์์ผ๋ฉด ๊ด์ฐฎ์์๊น์?=> github ์ฌ์ดํธ์์ ํ์ผ์ ์์ฑํ๊ณ ์ปค๋ฐํ ๋ค์, ๋ก์ปฌ์์ push -fu ํด๋ฒ๋ฆฌ๋ฉด
์๋ฒ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ ๋ชจ๋ ์ญ์ ๋๊ณ ๋ก์ปฌ์ ์ปค๋ฐ ํ์คํ ๋ฆฌ๊ฐ ๋ฎ์ด์
๋ฐ๋ผ์ ์๋ฒ์์ ์์ฑํ ํ์ผ์ ๋๋ฆด ์ ์์ ๊ฒ์
ํญ์ ๋ก์ปฌ์์ ์์ ํ๊ณ ์ปค๋ฐ&ํธ์ํ๊ณ , ๋จผ์ pull ๋ฐ๊ณ ์ปค๋ฐ&ํธ์ ํด์ผ ํจ
์์์์ -fu ์ฌ์ฉํ ๊ฒ์ ์๋ฒ๋ฅผ ๋ญ๊ฐ๋ฒ๋ฆฌ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๊ฒ์ -
warning: LF will be replaced by CRLF in <ํ์ผ๋ช >.
The file will have its original line endings in your working directory
์ฐธ๊ณ
๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ์ด๊ฒ์ด unix์ ์๋์ฐ/๋ฆฌ๋ ์ค ๊ฐ์ whitespace ๋ก ์ธํด์ ๋ฐ์ํ๋ ๊ฒฝ๊ณ ๋ผ๋๋ฐ,
๊ทธ์ ๋ฐ๋ผ git config --global ๋ก true, false, (true input // ๋ฆฌ๋ ์ค) ๋ก ์ธํ ํ ์ ์์ด์
์ ๋ ๊ทธ๋ฅ ๊ฒฝ๊ณ ๋ฅผ ๋๋ ์ฉ๋๋ก false๋ก ์ธํ ํ์ง๋ง,
์ด๊ฒ๊ณผ ๊ด๋ จํด์ ํน์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ฑฐ๋ ์ค๋ฌด์ ๊ด๋ จ๋ ๋ด์ฉ์ด ์์๊น์?=> Carriage Return Line Feed๊ฐ ์๋์ฐ ๊ธฐ๋ฐ(\r\n)๊ณผ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ(\n)์ด ๋ค๋ฆ
๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ฉด ๋จ
์๋์ฐ>git config --global core.autocrlf true
๋งฅ>git config --global core.autocrlf input