git์ ์ด์ฉํ๋ฉด์, ์์ฃผ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ , ์ค์๋ฅผ ํด์ ์ทจ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์๊ธฐ๋
git add, git commit, git push ๋ช ๋ น์ด๋ฅผ ์ทจ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
์์ฃผ ์ฌ์ฉํ๋๋ฐ, ์์ฃผ ์์ด๋ฒ๋ ค์ ๋ด๊ฐ ๋ณด๊ธฐ ํธํ ๊ณณ์ผ๋ก ์ ๋ฆฌํด๋ณด์๋ค.
(1) git add ์ทจ์ํ๊ธฐ
- ํ์ผ ์ํ๋ฅผ Stage -> Unstage๋ก ๋ณ๊ฒฝํ๊ธฐ
1. git add .
: ๋ชจ๋ ํ์ผ์ Staged ์ํ๋ก ๋ฐ๊พผ๋ค.
(.
์๋ฆฌ์ ํ์ผ๋ช
์ ์
๋ ฅํ๋ฉด ํด๋น ํ์ผ๋ง Staged ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.)
// ๋ชจ๋ ํ์ผ์ด Staged ์ํ๋ก ๋ฐ๋๋ค.
$ git add .
* git status
: ํ์ผ๋ค์ ์ํ๋ฅผ ํ์ธํ๋ ๋ช
๋ น์ด์ด๋ค.
ํ์ผ์ด stage ์ํ์ธ์ง, unstage ์ํ์ธ์ง ํ์ธํ ์ ์๋๋ก ์๋ ค์ค๋ค.
์๋ ์ฝ๋์์ (use "git restore --staged <file>..." to unstage)
๋ถ๋ถ์ฒ๋ผ
unstage๋ฅผ ํ๋ ค๋ฉด ์ด์ฉํ๋ฉด ์ข์ ๋ช ๋ น์ด๋ ํจ๊ป ์๋ด๋๊ธฐ๋ ํ๋ค.
// ํ์ผ๋ค์ ์ํ ํ์ธ
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
2. git reset HEAD [file]
๋ช
๋ น์ด๋ฅผ ํตํด git add
๋ช
๋ น์ ์ทจ์ํ ์ ์๋ค.
ํ์ผ๋ช ์ ์ ์ผ๋ฉด ํด๋น ํ์ผ์ Unstaged ์ํ๋ก ๋ณ๊ฒฝํ๋ค.
$ git reset HEAD README.md
๋ค์ ํ์ผ๋ช ์ด ์์ผ๋ฉด addํ ํ์ผ ์ ์ฒด๋ฅผ ์ทจ์ํ๋ค.
3. git restore
: git ๋ฒ์ 2.23๋ถํฐ ์คํ
์ด์ง ๋๋๋ฆฌ๊ธฐ ๋ช
๋ น์ด๊ฐ ๋ณ๊ฒฝ๋ ๊ฒ.
git add
๋ฅผ ์ด์ฉํด์ stage์ ์ฌ๋ผ๊ฐ ํ์ผ๋ค์ ๋ค์ unstage๋ก ๋๋ฆฌ๋ ๋ช
๋ น์ด์ด๋ค.
ex. git reset HEAD README.md
-> git restore --staged README.md
(2) git commit ์ทจ์ํ๊ธฐ
- commit์ ์ทจ์ํ๋ ๋ฐฉ๋ฒ
1. git log
: ๊ทธ๋์์ ์ปค๋ฐ ๋ชฉ๋ก์ ์ต๊ทผ ๊ธฐ๋ก ์์๋ก ํ๋์ ๋ณผ ์ ์๋ค.
๋จผ์ , commit ๋ชฉ๋ก์ ํ์ธํ๋ค.
$ git log // ์ปค๋ฐ ๋ชฉ๋ก ํ์ธ
2. git reset
: commit ์ทจ์ํ๊ธฐ
๋ฐฉ๋ฒ 1. --soft ์ต์
commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ staged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์ ๋ณด์กด
$ git reset --soft HEAD^
๋ฐฉ๋ฒ 2. --mixed ์ต์
commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ unstaged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์ ๋ณด์กด
$ git reset --mixed HEAD^ // ๊ธฐ๋ณธ ์ต์
$ git reset HEAD^ // ์์ ๋์ผ
$ git reset HEAD~2 // ๋ง์ง๋ง 2๊ฐ์ commit์ ์ทจ์
๋ฐฉ๋ฒ 3. --hard ์ต์
commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ unstaged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ
$ git reset --hard HEAD^
* commit message ๋ณ๊ฒฝํ๊ธฐ
git commit –amend : git commit message๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
commit message๋ง ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ฉด ๋๋ค.
git commit --amend
reset ์ต์ ์ ๋ฆฌ
-soft
: index ๋ณด์กด(addํ ์ํ, staged ์ํ), ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ ์ ๋ถ ๋ณด์กด.-mixed
: ๊ธฐ๋ณธ ์ต์ | index ์ทจ์(addํ๊ธฐ ์ ์ํ, unstaged ์ํ), ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ ๋ณด์กด.-hard
: index ์ทจ์(addํ๊ธฐ ์ ์ํ, unstaged ์ํ), ์ํน ๋๋ ํฐ๋ฆฌ์ ํ์ผ ์ญ์ . ์ ๋ถ ์ทจ์. -> ๋ฐ๋ผ์ hard ์ต์ ์ ์ฃผ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ex. ์๋์ ๊ฐ์ด hard ์ต์ ์ ์ด์ฉํ ๊ฒฝ์ฐ ์ํน ๋๋ ํฐ๋ฆฌ๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๋ง์ง๋ง commit ์ํ๋ก ๋๋๋ฆฐ๋ค.
๋ญ๊ฐ ์๋ชป๋ ๋ถ๋ถ์ด ์์ ๋ ๋๋๋ฆฌ๊ณ ์ถ์ด์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์์ ํ๊ฒ ์ด์ commit์ผ๋ก ๋์๊ฐ ์๋ ์์ง๋ง,
๊ทธ ๋์ ์์์ ์ธ๊ธํ ๋๋ก ํด๋น commit ์ด์ ์ ์์ ํ๋ ๋ชจ๋ ํ์ผ ๋ด์ฉ์ด ๋ ๋ผ๊ฐ๋ค.
git reset --hard HEAD
(3) git push ์ทจ์ํ๊ธฐ
commit์ ์ํ๋ ์์ ์ผ๋ก ๋๋๋ ค ๋ค์ pushํด์, ์ํ์ง ์์๋ ๋ถ๋ถ์ ์์ ๋ฉด์ ๊ฐ์ ๋ก ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฃผ์ํ ์
- ์์ ์ local์ ๋ด์ฉ์ remote์ ๊ฐ์ ๋ก ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ํ๋ ๊ฒ
- ๋๋์๊ฐ commit ์ดํ์ ๋ชจ๋ commit ์ ๋ณด๊ฐ ์ฌ๋ผ์ง๋ค.
- ํนํ, ํ์ ํ๋ก์ ํธ์์๋ ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
1-1. ๊ฐ์ฅ ์ต๊ทผ commit์ ์ทจ์ํ๊ณ ์ํน ๋๋ ํ ๋ฆฌ์์ commit์ ๋๋๋ฆฐ๋ค.
// ๊ฐ์ฅ ์ต๊ทผ commit ์ทจ์ (๊ธฐ๋ณธ ์ต์
: --mixed)
$ git reset HEAD^
1-2. ํน์ commit์ผ๋ก ๋์๊ฐ์ ์งํํ๋ ค๋ฉด ์ํ๋ ์์ ์ผ๋ก ์ํน ๋๋ ํฐ๋ฆฌ๋ฅผ ๋๋๋ฆฐ๋ค.
// git ์ด๋ ฅ ํ์ธ
$ git reflog ๋๋ $ git log -g
// ์ํ๋ ์์ ์ commit ์ผ๋ก reset
$ git reset HEAD@{number} ๋๋ $ git reset [commit id]
2. ๋๋๋ ค์ง ์ํ์์ ๋ค์ ์๋กญ๊ฒ commit์ ํ๋ค.
git commit -m "New Commit messages"
3. ์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ๋ก push ํ๋ค.
-f
์ต์
(=-force
)์ด๋ +
๋ฅผ ์ด์ฉํ๋ค.
git push origin +[branch name]
or
git push origin [branch name] -f
ex. main ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ๋ก push ํ๊ธฐ
$ git push origin +main
(4) untracked ํ์ผ ์ญ์ ํ๊ธฐ
git clean : .gitignore ์ ๋ช ์ํ์ฌ ์ ์ธ๋๋ ํ์ผ์ ์ ์ธํ๊ณ ์ถ์ ์ค์ด์ง ์์ ํ์ผ๋ง ์ง์ด๋ค.
// ํ์ผ๋ค๋ง ์ญ์ (๋๋ ํฐ๋ฆฌ ์ ์ธ)
$ git clean -f
// -d : ๋๋ ํฐ๋ฆฌ๊น์ง ์ญ์
$ git clean -f -d
// -x : ๋ฌด์๋ ํ์ผ๊น์ง ์ญ์
$ git clean -f -d -x
// -n : ๊ฐ์์ผ๋ก ์คํํด๋ณด๊ณ ์ด๋ค ํ์ผ๋ค์ด ์ง์์ง์ง ์๋ ค์ฃผ๋ ๊ฒ
References
- https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EB%90%98%EB%8F%8C%EB%A6%AC%EA%B8%B0
- https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0#r_git_reset
๋๐ง
'Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Github] Github ํ ํฐ ์ธ์ฆ (0) | 2021.08.17 |
---|
๋๊ธ