๐Ÿ‘ฉ‍๐Ÿ’ป/React

[React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #3 master ๋ธŒ๋žœ์น˜๋กœ ํ†ตํ•ฉํ•˜๊ธฐ/github pages์— ์žฌ๋ฐฐํฌํ•˜๊ธฐ

ํ•œ๋‚˜ 2021. 2. 16. 02:27

2021/02/09 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #1 Figma ํ”„๋กœํ† ํƒ€์ดํ•‘/๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…/Grommet UI Library/useState/Responsive Header ๋งŒ๋“ค๊ธฐ

2021/02/13 - [๐Ÿ‘ฉ‍๐Ÿ’ป/React.js] - [React.js๋กœ ๋งŒ๋“œ๋Š” Tech Blog] #2 react router ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ


 

Github Pages์— ๋ฐฐํฌ๋œ ๊ธฐ์กด portfolio๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด์„œ second ๋ผ๋Š” ์ด๋ฆ„์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ž‘์—…์ด ์–ด๋Š ์ •๋„ ๋๋‚˜์„œ second ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜๋กœ ์•„์˜ˆ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

git checkout second
git merge -s ours master
git checkout master
git merge second

 

์œ„ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๋‘ ๋ฒˆ์งธ ๋ผ์ธ์—์„œ refusing to merge unrelated histories ๋ผ๋Š” ์—๋Ÿฌ ๋ฌธ๊ตฌ๊ฐ€ ๋– ์„œ, ์•„๋ž˜์ฒ˜๋Ÿผ ํ•ด์ฃผ์—ˆ๋‹ค.

 

git checkout second
git merge --allow-unrelated-histories -s ours master
git checkout master
git merge second

 

์ดํ›„์—๋Š” readme๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  commit ํ•ด์ฃผ๋ฉด master ๋ธŒ๋žœ์น˜๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณด์—ฌ์ง„๋‹ค.

๊ธฐ์กด second ๋ธŒ๋žœ์น˜์˜ commit ๊ธฐ๋ก์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ  ์ƒˆ๋กœ ๋”ํ•œ readme์— ๋Œ€ํ•œ ์ปค๋ฐ‹ ๋ชฉ๋ก์ด ๋ณด์—ฌ์ง„๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ๊ธฐ์กด git ๊ธฐ๋ก์ด ์‚ฌ๋ผ์ง€์ง„ ์•Š๋Š”๋‹ค. ์•„๋ž˜๋Š” second ๋ธŒ๋žœ์น˜. master์™€ ๋ณ‘ํ•ฉ์ด ๋˜์–ด์„œ ์ด์ „์— ์—†์—ˆ๋˜ master ๋ธŒ๋žœ์น˜์˜ ๊นƒ ๊ธฐ๋ก์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

github pages์— ๋ฐฐํฌํ•˜๊ธฐ / using index.html on the root folder

์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๊ณ  ๋‚˜์„œ hannah26hannah.github.io/ ๋กœ ๋ฐฐํฌ์ƒํ™ฉ์„ ํ™•์ธํ•˜๋‹ˆ readme ๋‚ด์šฉ๋งŒ ์ถœ๋ ฅ๋˜๊ณ  ์žˆ์—ˆ๋‹ค. root์— ๊ธฐ๋ณธ์œผ๋กœ ๋ณด์—ฌ์งˆ ํŒŒ์ผ์ธ index.html์ด ๋ถ€์žฌํ•ด์„œ, Readme๊ฐ€ ๋Œ€์‹  ๋ณด์—ฌ์ง€๊ณ  ์žˆ์—ˆ๋‹ค.

root์— index.html์„ ์ƒ์„ฑํ•˜๊ณ , ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ์ถ”๊ฐ€ํ•ด์„œ ๋‹ค์‹œ ์—…๋กœ๋“œํ–ˆ๋‹ค.

 

<meta http-equiv="Refresh" content="2; url=public/index.html">

 

์—ญ์‹œ๋‚˜ ์ œ๋Œ€๋กœ ์—…๋กœ๋“œ๊ฐ€ ์•ˆ ๋ผ์„œ gh-pages ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

github pages์— ๋ฐฐํฌํ•˜๊ธฐ / using gh-pages package

๋งŒ๋“ค์—ˆ๋˜ index.html ํŒŒ์ผ์€ ์‚ญ์ œํ•˜๊ณ , ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ gh-pages๋ฅผ ๋‹ค์šด๋ฐ›์•„์ค€๋‹ค.

yarn add gh-pages --dev
# dev dependency๋กœ ์ธ์Šคํ†จ ํ•œ๋‹ค. npm์„ ์“ด๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์“ด๋‹ค. 

npm install gh-pages --save-dev

package.json ํŒŒ์ผ ์„ค์ •์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•ด์ค€๋‹ค.

 

์šฐ์„  homepage ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๋งŒ์ผ ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ์ €์žฅ์†Œ๋ฅผ ๊ฐ–๋Š”๋‹ค๋ฉด, <userId>.github.io/<another_repo_name> ํ˜•์‹์„ ๋”ฐ๋ฅธ๋‹ค.

"homepage": "https://hannah26hannah.github.io/",

์Šคํฌ๋ฆฝํŠธ๋Š” predeploy, deploy ๋ผ์ธ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. yarn run deploy๋ฅผ ์‹คํ–‰ํ•˜๋ฉด predeploy๋„ ์‹คํ–‰๋œ๋‹ค.

 "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  },

์‹คํ–‰๋˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ compile ํ›„

 

published ๋ผ๋Š” ํ…์ŠคํŠธ๊ฐ€ ๋œจ๋ฉด์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋œ๋‹ค.

 

CRA์œผ๋กœ ๋ฆฌ์•กํŠธ ์•ฑ์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ, gh-pages ํŒจํ‚ค์ง€ ๋งค๋‰ด์–ผ์— ๋”ฐ๋ผ ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด build๋ผ๋Š” ํด๋”์— ๋นŒ๋“œ output์ด ๋‹ด๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์ƒํƒœ๋กœ ๋‹ค์‹œ homepage์— ์ ‘์†ํ•ด๋ณด๋‹ˆ ๋˜ ์•ˆ ๋– ์„œ, GIthub Pages ์„ธํŒ…์— master /docs ๋Œ€๋กœ build ํด๋”๋ฅผ docs๋กœ renaming ํ•ด์คฌ๋‹ค. ใ… ใ… 

 

renaming์„ ํ•˜์ž ๊ทธ๋•Œ ์ œ๋Œ€๋กœ ๋””ํ”Œ๋กœ์ด๊ฐ€ ๋๋‹ค. ์ƒ์„ฑ๋œ build ํด๋”์˜ ์ด๋ฆ„์„ docs๋กœ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์†Œ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์›Œ๋‹์ด ๋œจ๊ณ  ๋ฐฐํฌ์— ์‹คํŒจํ•œ๋‹ค.

 

 

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์ •ํ•ด์„œ Renaming ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๊ธฐ๋กœ ํ•ด๋ณธ๋‹ค.

 

(๊ธฐ์กด์— ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด ๋ฐฐํฌํ–ˆ๋‹ค๋ฉด docs ํด๋”๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค) -> npm run build ํ›„ build ํด๋”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค -> docs ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  -> build ํด๋”๋Š” docs ํด๋”๋กœ ์ด๋ฆ„์ด ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค.

 

"scripts": {
    "start": "react-scripts start",
    "prebuild": "rmdir /s docs",
    "build": "react-scripts build && rmdir /s docs && ren build docs",
    "rename": "ren build docs",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  },

 

package.json์˜ script ๋ถ€๋ถ„์€ ์ด๋ ‡๋‹ค. prebuild๋ผ๊ณ  ์ด๋ฆ„ ์ง€์–ด์ค€ ๋ถ€๋ถ„, renmae์ด๋ผ๊ณ  ์ด๋ฆ„ ์ง€์–ด์ค€ ๋ถ€๋ถ„์€ ๋‚˜์ค‘์— ๊ฐ ๊ณผ์ •๋งŒ ๋”ฐ๋กœ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์“ฐ๋ ค๊ณ  ๋งŒ๋“ค์–ด๋†จ๋‹ค. ๋นŒ๋“œ ํ›„ docs ํด๋” ์ง€์šฐ๊ณ , ์ƒ์„ฑ๋œ build ํด๋”์˜ ์ด๋ฆ„์„ docs๋กœ ๋ฐ”๊พผ๋‹ค๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์ผ์น˜ํ•˜๋ฉด yarn run build๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

 

CMD ๋ช…๋ น์–ด์ด๊ณ , ๋ฆฌ๋ˆ…์Šค๋ฅผ ์“ด๋‹ค๋ฉด “react-scripts build && rm -rf docs && mv build docs” ์ด๋ ‡๊ฒŒ ํ•ด์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

 


 

 

์ฐธ๊ณ ํ•œ ๋งํฌ

 

How to replace master branch in Git, entirely, from another branch?

I have two branches in my Git repository: master seotweaks (created originally from master) I created seotweaks with the intention of quickly merging it back into master. However, that was three ...

stackoverflow.com

์ฐธ๊ณ ํ•œ ๋งํฌ 2