| description | github ์์ฃผ ์ฐ๋ ๋ช ๋ น์ด ๋ชจ์๋ณด๊ธฐ |
|---|---|
| icon | git |
git reset --hard๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ปค๋ฐ์ผ๋ก ๋๋๋ ธ์ ๋, ๋ก์ปฌ ์ ์ฅ์๋ ๊ทธ ์ปค๋ฐ ์ดํ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ก์ปฌ ์ ์ฅ์์ ์๊ฒฉ ์ ์ฅ์์ ์ํ๊ฐ ๋ถ์ผ์นํ๊ฒ ๋๋ฉฐ, ์ด๋ฅผ ๋ง์ถ๊ธฐ ์ํด ๊ฐ์ ๋ก ํธ์ํด์ผ ํฉ๋๋ค.
-
git reset --hard๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ปค๋ฐ์ผ๋ก ๋๋๋ฆผ์ด๋ฏธ ์คํํ ๋ช ๋ น์ด์ ๋๋ค:
git reset --hard 6bec4114ed3cfd83858aa59311ca0ac9813d6c18
์ด ๋ช ๋ น์ด๋ ๋ก์ปฌ ์ ์ฅ์๋ฅผ
6bec4114ed3cfd83858aa59311ca0ac9813d6c18์ปค๋ฐ์ผ๋ก ๋๋๋ฆฝ๋๋ค. -
์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ๋ก ํธ์
๋ก์ปฌ ์ ์ฅ์๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๋ง์ถ๊ธฐ ์ํด ๊ฐ์ ๋ก ํธ์ํด์ผ ํฉ๋๋ค. ์ด๋ ์๊ฒฉ ์ ์ฅ์์ ํ์คํ ๋ฆฌ๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฒ์ด๋ฏ๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
git push origin main --force
์ฌ๊ธฐ์
main์ ํ์ฌ ์ฌ์ฉ ์ค์ธ ๋ธ๋์น ์ด๋ฆ์ ๋๋ค. ๋ง์ฝ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด ํด๋น ๋ธ๋์น ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๊ฐ์ ํธ์ (
--force): ์๊ฒฉ ์ ์ฅ์์ ํ์คํ ๋ฆฌ๊ฐ ๋ฎ์ด์จ์ง๊ธฐ ๋๋ฌธ์, ์ด ์์ ์ ์ ์คํ๊ฒ ์ํํด์ผ ํฉ๋๋ค. ํนํ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด ์ ์ฅ์๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด, ๊ทธ๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. - ํ์คํ ๋ฆฌ ์์ค: ์ด ์์ ์ ์ํํ๋ฉด ๋๋๋ฆฐ ์ดํ์ ๋ชจ๋ ์ปค๋ฐ์ด ํ์คํ ๋ฆฌ์์ ์ฌ๋ผ์ง๋ฏ๋ก, ํ์ํ ๊ฒฝ์ฐ ๋ฐฑ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ๋ก์ปฌ ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ:
git reset --hard <commit-hash> - ์๊ฒฉ ์ ์ฅ์์ ๊ฐ์ ํธ์:
git push origin <branch-name> --force
์ด ์์ ์ ํตํด ๋ก์ปฌ๊ณผ ์๊ฒฉ ์ ์ฅ์์ ์ํ๋ฅผ ์ผ์น์ํฌ ์ ์์ต๋๋ค.
์ฐธ๊ณ : https://soranhan.tistory.com/11
- ์ผ๋จ ๋ด github์ ์๋ก์ด ๋ ํ์งํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
- terminal์ ์ฐ๋ค.
- ๋ณต์ฌํ๊ณ ์ ํ๋ repository๋ฅผ bare cloneํ๋ค.
$ git clone --bare https://github.com/exampleuser/old-repository.git
- ์๋ก์ด ๋ ํ์งํ ๋ฆฌ๋ก Mirror-push
$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git
- ์ฒ์์ ์์๋ก ์์ฑํ๋ local repository๋ฅผ ์ญ์
$ cd ..
$ rm -rf old-repository.git
- ๋ค๋ง ์ด๊ฒ ๊ฐ๋ ์๋๋ ๊ฒ ์๋๋ฐ ๊ทธ ์ด์ ๋
๊ถํ๋๋ฌธ์ด๊ธฐ์ ํ ํฐ์ ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ๊ฑธ๋ก ์ฌ์ฉํด์ผ ํจ
GitHub Personal Access Token ์์ฑ
- GitHub ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํฉ๋๋ค.
- GitHub์ Personal Access Token ์์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- "Generate new token" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ๊ถํ(Scopes)์์
repo,workflow,admin:repo_hook๊ถํ์ ์ ํํฉ๋๋ค. ์ด ํ ํฐ์ ์ ์ฅ์์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ง๋๋ค.- ์์ฑ๋ ํ ํฐ์ ๋ณต์ฌํด๋ก๋๋ค. ์ด ํ ํฐ์ ๋์ค์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
- ๊ฐ์ธ์ํ์ด์ง์ ํ ํฐ๊ธฐ๋กํด๋๊ธฐ!!!
- Personal Access Token (PAT) ์ฌ์ฉ :
git push --mirror๋ช ๋ น์ด์ Personal Access Token์ ํฌํจํ์ฌ ์ธ์ฆ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
git push --mirror https://<TOKEN>@github.com/exampleuser/new-repository.git
๋ค๋ฅธ ๋ธ๋์น๋ฅผ git cloneํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์๊ฒฉ ์ ์ฅ์์ ๊ธฐ๋ณธ ๋ธ๋์น(์: main ๋๋ master)๊ฐ ๋ณต์ ๋ฉ๋๋ค. ํ์ง๋ง ํน์ ๋ธ๋์น๋ฅผ ํด๋ก ํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํน์ ๋ธ๋์น๋ฅผ ์ง์ ํ์ฌ ์ ์ฅ์๋ฅผ ํด๋ก ํ๋ ค๋ฉด -b ์ต์
์ ์ฌ์ฉํ์ฌ ๋ธ๋์น ์ด๋ฆ์ ๋ช
์ํฉ๋๋ค.
git clone -b <branch-name> <repository-url>์๋ฅผ ๋ค์ด, feature-branch๋ผ๋ ๋ธ๋์น๋ฅผ ํด๋ก ํ๋ ค๋ฉด:
git clone -b feature-branch https://github.com/username/repository.git์ด ๋ช ๋ น์ ์ง์ ํ ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฅ์๋ฅผ ํด๋ก ํฉ๋๋ค.
๊ธฐ๋ณธ ๋ธ๋์น๋ก ํด๋ก ํ ํ์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ ์๋ ์์ต๋๋ค.
git clone <repository-url>
cd <repository-directory>
git checkout <branch-name>์๋ฅผ ๋ค์ด:
git clone https://github.com/username/repository.git
cd repository
git checkout feature-branch์ด ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ ๋ธ๋์น๋ฅผ ํด๋ก ํ ํ์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ์ฌ ์์ ์ ์งํํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํด๋น ๋ธ๋์น์ ๋ด์ฉ์ผ๋ก ์์ ๋๋ ํ ๋ฆฌ๊ฐ ์ ํ๋ฉ๋๋ค.