Skip to content

Latest commit

ย 

History

History
134 lines (85 loc) ยท 4.88 KB

File metadata and controls

134 lines (85 loc) ยท 4.88 KB
description github ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด ๋ชจ์•„๋ณด๊ธฐ
icon git

github ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด

1. ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ ๋งž์ถ”๊ธฐ

git reset --hard ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ๋˜๋Œ๋ ธ์„ ๋•Œ, ๋กœ์ปฌ ์ €์žฅ์†Œ๋Š” ๊ทธ ์ปค๋ฐ‹ ์ดํ›„์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์žƒ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋กœ์ปฌ ์ €์žฅ์†Œ์™€ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ƒํƒœ๊ฐ€ ๋ถˆ์ผ์น˜ํ•˜๊ฒŒ ๋˜๋ฉฐ, ์ด๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ๊ฐ•์ œ๋กœ ํ‘ธ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. git reset --hard ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ๋˜๋Œ๋ฆผ

    ์ด๋ฏธ ์‹คํ–‰ํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค:

    git reset --hard 6bec4114ed3cfd83858aa59311ca0ac9813d6c18

    ์ด ๋ช…๋ น์–ด๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ 6bec4114ed3cfd83858aa59311ca0ac9813d6c18 ์ปค๋ฐ‹์œผ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

  2. ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ฐ•์ œ๋กœ ํ‘ธ์‹œ

    ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ๊ฐ•์ œ๋กœ ํ‘ธ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    git push origin main --force

    ์—ฌ๊ธฐ์„œ main์€ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜์‚ฌํ•ญ

  • ๊ฐ•์ œ ํ‘ธ์‹œ (--force): ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋ฎ์–ด์จ์ง€๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์ž‘์—…์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด, ๊ทธ๋“ค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํžˆ์Šคํ† ๋ฆฌ ์†์‹ค: ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋˜๋Œ๋ฆฐ ์ดํ›„์˜ ๋ชจ๋“  ์ปค๋ฐ‹์ด ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์‚ฌ๋ผ์ง€๋ฏ€๋กœ, ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ฐฑ์—…์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด์ ์ธ ์ ˆ์ฐจ ์š”์•ฝ

  1. ๋กœ์ปฌ ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ: git reset --hard <commit-hash>
  2. ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ฐ•์ œ ํ‘ธ์‹œ: git push origin <branch-name> --force

์ด ์ž‘์—…์„ ํ†ตํ•ด ๋กœ์ปฌ๊ณผ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ์ƒํƒœ๋ฅผ ์ผ์น˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Forkํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ commit ๊ธฐ๋ก ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ์ž‘์—…

์ฐธ๊ณ  : https://soranhan.tistory.com/11

  1. ์ผ๋‹จ ๋‚ด github์— ์ƒˆ๋กœ์šด ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.
  2. terminal์„ ์—ฐ๋‹ค.
  3. ๋ณต์‚ฌํ•˜๊ณ ์ž ํ•˜๋Š” repository๋ฅผ bare cloneํ•œ๋‹ค.
$ git clone --bare https://github.com/exampleuser/old-repository.git
  1. ์ƒˆ๋กœ์šด ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋กœ Mirror-push
$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git
  1. ์ฒ˜์Œ์— ์ž„์‹œ๋กœ ์ƒ์„ฑํ–ˆ๋˜ local repository๋ฅผ ์‚ญ์ œ
$ cd ..
$ rm -rf old-repository.git
  1. ๋‹ค๋งŒ ์ด๊ฒŒ ๊ฐ€๋” ์•ˆ๋˜๋Š” ๊ฒŒ ์žˆ๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” ๊ถŒํ•œ ๋•Œ๋ฌธ์ด๊ธฐ์— ํ† ํฐ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๊ทธ๊ฑธ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

GitHub Personal Access Token ์ƒ์„ฑ

  1. GitHub ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. GitHub์˜ Personal Access Token ์ƒ์„ฑ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. "Generate new token" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ถŒํ•œ(Scopes)์—์„œ repo, workflow, admin:repo_hook ๊ถŒํ•œ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  5. ์ƒ์„ฑ๋œ ํ† ํฐ์„ ๋ณต์‚ฌํ•ด๋‘ก๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  6. ๊ฐœ์ธ์ž˜ํŽ˜์ด์ง€์— ํ† ํฐ๊ธฐ๋กํ•ด๋‘๊ธฐ!!!
  • Personal Access Token (PAT) ์‚ฌ์šฉ : git push --mirror ๋ช…๋ น์–ด์— Personal Access Token์„ ํฌํ•จํ•˜์—ฌ ์ธ์ฆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
git push --mirror https://<TOKEN>@github.com/exampleuser/new-repository.git

3. ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ git clone

๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ git cloneํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜(์˜ˆ: main ๋˜๋Š” master)๊ฐ€ ๋ณต์ œ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ • ๋ธŒ๋žœ์น˜๋ฅผ ํด๋ก ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1) ํŠน์ • ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ํด๋ก ํ•˜๊ธฐ

ํŠน์ • ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•˜๋ ค๋ฉด -b ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

git clone -b <branch-name> <repository-url>

์˜ˆ๋ฅผ ๋“ค์–ด, feature-branch๋ผ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ํด๋ก ํ•˜๋ ค๋ฉด:

git clone -b feature-branch https://github.com/username/repository.git

์ด ๋ช…๋ น์€ ์ง€์ •ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.

2) ํด๋ก  ํ›„ ๋ธŒ๋žœ์น˜ ์ฒดํฌ์•„์›ƒ

๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋กœ ํด๋ก ํ•œ ํ›„์— ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ฅผ ํด๋ก ํ•œ ํ›„์— ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์œผ๋กœ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

3) ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ๋กœ์ปฌ์— cloneํ•˜๋ ค ํ•˜๋ฉด ๋ฌธ์ œ ์ƒ๊น€