20210930_Git(1)

naisยท2021๋…„ 9์›” 30์ผ
0

๋„ค์นด๋ผ์ฟ ๋ฐฐ

๋ชฉ๋ก ๋ณด๊ธฐ
5/27
post-thumbnail

โœ”๐Ÿ™†โ€โ™€๏ธ์ˆ˜์—…์€ 9/29์ผ์— ์ง„ํ–‰ํ•œ๊ฑฐ ๊นŒ์ง€ ๊ฐ™์ด ์ •๋ฆฌ
๐Ÿ‘Œ์šฐ๋ฆฌ๋Š” CLI ๋ชจ๋“œ์—์„œ ๊นƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋จผ์ € ์ตํž๊ฒƒ

vi๋ž€? ๋ฆฌ๋ˆ…์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฐ์ดํ„ฐ

1.vim command ๋ช…๋ น์–ด

์ปค์„œ ์ด๋™

  • h, j ,k, l - ์™ผ์ชฝ , ์•„๋ž˜ , ์œ„ , ์˜ค๋ฅธ์ชฝ
  • w - ์˜ค๋ฅธ์ชฝ ํ•œ ๋‹จ์–ด์˜ ๋ ๋ถ€๋ถ„ ์ด๋™
  • e - ์˜ค๋ฅธ์ชฝ ํ•œ ๋‹จ์–ด์˜ ์•ž ๋ถ€๋ถ„ ์ด๋™
  • i - ์ธ์„œํŠธ ๋ชจ๋“œ
  • v - ๋น„์ฃผ์–ผ ๋ชจ๋“œ
  • esc - ์ข…๋ฃŒ( ๋ชจ๋“œ๋ฅผ ๋ฒ—์–ด๋‚œ๋‹ค)
  • d - ์‚ญ์ œ
  • dd - ํ•ด๋‹น ์ค„์„ ์‚ญ์ œ
  • p - ๋ณต์‚ฌ
  • u - ์ด์ „ ๋ช…๋ น ์ทจ์†Œ
  • a - ์ปค์„œ ์˜ค๋ฅธ์ชฝ์— ๋ฌธ์ž ์‚ฝ์ž…
  • A - ์ปค์„œ ์˜ค๋ฅธ์ชฝ, ํ–‰์˜ ๋์— ๋ฌธ์ž ์‚ฝ์ž…
  • o - ์ปค์„œ ์•„๋ž˜ ํ–‰์— ์‚ฝ์ž…
  • O -์ปค์„œ ์œ„์— ํ–‰ ์‚ฝ์ž…

command mode

  • q : ์ˆ˜์ •ํ•œ ํŒŒ์ผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  vi ์ข…๋ฃŒ
  • q! : ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ํ•˜์ง€ ์•Š๊ณ  vi ์ข…๋ฃŒ
  • w : ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ €์žฅ
  • wq : ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ ํ›„ vi ์ข…๋ฃŒ zz ๋ช…๋ น์–ด์™€ ๊ฐ™์Œ w,q์„ ์—ฐ์†์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ
  • zz: ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ณด๊ด€ ํ›„ vi ์ข…๋ฃŒ
  • e! : ์ˆ˜์ •ํ•œ ๊ฒƒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์‹œ ํŽธ์ง‘ ์ƒํƒœ๋กœ

git ์ด๋ž€?

ํ˜•์ƒ๊ด€๋ฆฌ
-์†Œ์Šค์ฝ”๋“œ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์—†์ด ๋™์‹œ ์ž‘์—…์ด ๊ฐ€๋Šฅ
-์ˆ˜์ • ๋‚ด์šฉ์„ commit ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ, ๋ฐฐํฌ๋„ ์›ํ•˜๋Š” ์‹œ์ ์œผ๋กœ checkout ๊ฐ€๋Šฅ

git objects

  • Blob: ํŒŒ์ผ ํ•˜๋‚˜์˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ •๋ณด
  • Tree : Blob๋‚˜ subtree์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(๋””๋ ˆํ† ๋ฆฌ ์œ„์น˜, ์†์„ฑ, ์ด๋ฆ„ ๋“ฑ)
  • commit : ์ปค๋ฐ‹ ์ˆœ๊ฐ„์˜ ์Šค๋ƒ…์ƒท

git Process Flow and Command

๐Ÿšจgit๊ณผ github์€ ์ ˆ๋Œ€ ๊ฐ™์ง€์•Š๋‹ค

github์€ Cloud Remote Repository Service ์ผ๋ฟ
์ด์™ธ์—๋„ Bitbucket ๊ณผ GitLab์ด ์žˆ๋‹ค

repository ์ƒ์„ฑ

(1)init

$git init
$git remote add origin ๊นƒ ์ฃผ์†Œ} 
$touch README.md
$git add README.md 
$git commit -m "์—ฌ๊ธฐ์— ์ปค๋ฐ‹๋ฉ˜ํŠธ" # ํ•˜์ง€๋งŒ ๊ฐ•์‚ฌ๋‹˜์€ ์ถ”์ฒœํ•˜์ง€ ์•Š์•˜๋‹ค ๋”ฐ๋กœ ์“ฐ๊ธธ ๊ถŒ์žฅ
#git push -u origin master 

master ๋กœ main์„ ์—ฐ๊ฒฐ

(2) clone

$ git Clone {๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ}
$ git add ๋ช…์นญ 
$ git commit
$ git push

๐Ÿšจ์ƒˆ๋กœ์šด ๋””๋ ‰ํ† ๋ฆฌ๋“ค ์ƒ์„ฑํ•˜๊ณ  ์–ด๋–ค๊ฒŒ ์žˆ๋Š”์ง€ ์ž์„ธํžˆ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด

git status -uall 

Commit Convention

  • ์ปค๋ฐ‹ ์ œ๋ชฉ์€ 50์ž ์ด๋‚ด๋กœ ์š”์•ฝํ•˜์—ฌ ์ž‘์„ฑํ•œ๋‹ค
  • ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์‚ฌ์ด ํ•œ ์นธ
  • prefix๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ๋ˆˆ์— ์ปค๋ฐ‹์˜ ์šฉ๋„๋ฅผ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ํ•œ๋‹ค

feat: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๊ด€๋ จ
docs: ๋ฌธ์„œ์ž‘์—…
conf: ํ™˜๊ฒฝ์„ค์ • ๊ด€๋ จ
fix: ๋ฌธ์„œํ™” ์ž‘์—…
build:๋นŒ๋“œ ๊ด€๋ จ

commit ํ•  ๋•Œ ๊ธฐ์–ตํ•ด์•ผ ํ•  ๊ฒƒ

  • commit์€ ๋™์ž‘ ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ๋‹จ์œ„๋กœ ์ž์ฃผ ํ•  ๊ฒƒ
    • ํ•ด๋‹น ์ž‘์—…๋‹จ์œ„์— ์ˆ˜ํ–‰๋œ ๋ชจ๋“  ํŒŒ์ผ ๋ณ€ํ™”๊ฐ€ ํ•ด๋‹น commit์— ํฌํ•จ๋˜์–ด์•ผํ•จ
    • ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” log๋ฅผ ์ž‘์„ฑํ•  ๊ฒƒ
    • open Source Contribution ์‹œ ์˜์–ด๊ฐ€ ๊ฐ•์ œ๊ฐ€ ๋˜์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ํŒ€ ๋‚ด ์‚ฌ์šฉ ์–ธ์–ด๋ฅผ ๋”ฐ๋ผ ์“ธ๊ฒƒ
    • ์ œ๋ชฉ์€ ์ถ•์•ฝํ•˜์—ฌ ์“ฐ๋˜ (50 ์ž ์ด๋‚ด), ๋‚ด์šฉ์€ ๋ฌธ์žฅํ˜•์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ์ถ”๊ฐ€์„ค๋ช…
    • ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์€ ํ•œ ์ค„ ๋„์›Œ ๋ถ„๋ฆฌํ•  ๊ฒƒ
    • ๋‚ด์šฉ์€ ์ด commit์˜ ๊ตฌ์„ฑ๊ณผ ์˜๋„๋ฅผ ์ถฉ์‹คํžˆ ์ž‘์„ฑ
      test : ํ…Œ์ŠคํŠธ ๊ด€๋ จ
      ci: Continuous Integration ๊ด€๋ จ

README.md

  • ํ”„๋กœ์ ํŠธ์™€ Repository๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฑ…์˜ ํ‘œ์ง€์™€ ๊ฐ™์€ ๋ฌธ์„œ
  • ๋‚˜์™€ ๋™๋ฃŒ, ์ด repo์˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด์„œ ์„ค์น˜ ๋ฐฉ๋ฒ•๋“ฑ์„ ์„ค๋ช…ํ•ด ์ฃผ๋Š” ๊ฒƒ

.gitignore

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

git status ๋กœ ํ™•์ธ์‹œ ํ•ด๋‹น ํŒŒ์ผ์— ์ž‘์„ฑ๋œ ์• ๋“ค์€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค

LICENSE

์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ, ๋ฐฐํฌํ•  ๋•Œ์—๋„ ๊ฐ€์žฅ ์‹ ๊ฒฝ์จ์•ผํ•จ

  • MIT License : ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž„์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ผ์ด์„ผ์Šค , ๋งˆ์Œ๋Œ€๋กœ ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ ์ƒ๊ธฐ์ง€ ์•Š์Œ.
  • Apach License 2.0 : ํŠนํ—ˆ๊ถŒ ๊ด€๋ จ ๋‚ด์šฉ ํฌํ•จ
  • GNU General public License v3.0: ๊ฐ€์žฅ ๋งŽ์ด ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉฐ ์˜๋ฌด์‚ฌํ•ญ) ํ•ด๋‹น ๋ผ์ด์„ผ์Šค๊ฐ€ ์ ์šฉ๋œ ์†Œ์Šค์ฝ”๋“œ ์‚ฌ์šฉ์‹œ GPL์„ ๋”ฐ๋ผํ•˜) ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค

Gibhub blog

github ์ €์žฅ์†Œ๋ฅผ ํ™œ์šฉํ•ด์„œ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ

$ git clone https: https://github.com/sians5544/sians5544.github.io.git
$ touch index.html
$ git add
$ git commit 
$ git push origin master

git
node.js ๋‹ค์šด๋ฐ›๊ธฐ (https://nodejs.org/en/)

$ npm install -g hexo-cli
$ # hexo ์‹œ์ž‘
$ hexo init blog
$ cd blog
$ npm install
  • ํฌ์ŠคํŠธ ์ž‘์„ฑ

    hexo new post {ํฌ์ŠคํŠธ ๋ช…์นญ} 
  • post ์ž‘์„ฑ ํ›„

     hexo celan & hexo generate 
 - Run hexo sever ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ๋‹ค
  • ํฌ์ŠคํŒ… ์ž‘์„ฑ ํ›„ gitgub์œผ๋กœ ์ž๋™ ํ‘ธ์‰ฌํ•˜๋Š” ์„ค์ • deploy

    npm install hexo-deployer --git --save

    ๋“ฑ๋กํ•ด์ค€ github ์œผ๋กœ ์ž๋™์œผ๋กœ ํ‘ธ์‰ฌํ•˜๊ธฐ

    hexo deploy

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ 1) ๊นƒ init ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• -> ๋‚ด๊ฐ€ ํ‰์†Œ์— ์“ฐ๋˜ ๋ฐฉ๋ฒ•์ด๋‹ค ํ”„๋กœ์ ํŠธ ๋‹จ์œ„๋กœ ๊นƒ์„ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค

init ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ๋ฆฌ๋ชจํŠธ๋ ˆํฌ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค

์ฒซ๋ฒˆ์งธ push ์„ ํ• ๋•Œ

git push -u origin main ์œผ๋กœ -u ๋ฉ”์ธ๋ผ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐ ํ•ด์ค˜์•ผํ•œ๋‹ค ์—…์ŠคํŠธ๋ฆผ set ์„ํ•ด์คŒ

์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์—…์„ ๋‘๊ฐ€์ง€๊ฐ€ ์ง„ํ–‰๋˜์—ˆ๋‹ค๋ฉด ์ด๋‘˜์˜ ์—ฐ๊ด€์„ฑ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋ˆ„์–ด์„œ ์ปค๋ฐ‹ํ•ด์•ผํ•œ๋‹ค
๋‚ด๊ฐ€ ์–ด๋–ค ํ•œ ์ž‘์—…๋‹จ์œ„๋ฅผ ํ•˜๋ฉด์„œ ๋ช‡๊ฐœ์˜ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€ ์•Œ์•„์•ผํ•˜๊ณ 
ํ•œ ์ž‘์—… ๋‹จ์œ„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด
๋ฐ”๋กœ ์ปค๋ฐ‹์„ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค

๊ธฐ๋Šฅ๊ฐœ๋ฐœ feat ์ด๋ผ๊ณ  ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ๋‹ฌ์•„์ฃผ๋Š”๊ฒŒ ์ข‹๋‹ค
๊ทผ๋ฐ ๋‚˜ ์•ˆ๋‹ฌ๊ณ  ์ปค๋ฐ‹ํ–ˆ๋‹ค ์•ž์œผ๋กœ ๋‹ฌ์•„์•ผ์ง€ ใ…Žใ…Ž..

์Šคํ…Œ์ด์ง€๋ž€ ๋‚ด๊ฐ€ ๋ณ€๊ฒฝํ•œ ์ž‘์—…์„ ๋‹จ์œ„๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ์ปค๋ฐ‹ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค

2) clone ๋ฐฉ๋ฒ•

๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ฒฝ๋กœ์ด๊ธฐ ๋•Œ๋ฌธ์— (๋นต์กฐ๊ฐ)์ด๊ธฐ ๋–„๋ฌธ์— ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปค๋ฐ‹ํ• ์ˆ˜๋Š” ์—†๋‹ค (๋ชฉ์ ์ง€๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—)

git commit -m " " ์ด ๋ฉ”์„ธ์ง€ ์˜ต์…˜ -> ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๋‹จ์ˆœํ•˜๊ณ  ํŽธํ•˜๊ณ  ํ•˜๊ธดํ•œ๋ฐ
์•ˆ์“ฐ๋ ค๊ณ  ํ•˜์‹œ๋Š” ์ด์œ ๋Š”...
commit ์˜ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•  ๋•Œ ์ผ๋‹ค ์ง€์› ๋‹ค๋ฅผ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์˜คํƒ€ ์ž์ฃผ๋‚˜๋ฉด ์“ฐ์ง€๋ง์•„

refactoring -> ์˜ค๋ฅ˜ ๋‚˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ฐœ์„ ํ–ˆ์„ ์‹œ์— ์“ฐ๋Š” commit convetion

์ž‘์—… ๋‹จ์œ„์—์„œ๋Š” ์ด ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค๊ฑธ ๊ฑด๋“ค์˜€๋‹ค ๊ทธ๋Ÿฌ๋ฉด ๋ฌถ์–ด์„œ ์ปค๋ฐ‹์„ ๊ฐ™์ด ํ•œ๋‹ค
log์€ ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ• ์ˆ˜์žˆ๊ฒŒ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค

commit ์˜์–ด๋กœ ํ•˜์ž ์šฐ๋ฆฌ ๊ณผ์ • ์•ˆ์—์„œ๋Š”

commit ์˜ ๋‚ด์šฉ์—๋Š” ์ œ๋ชฉ์—์„œ ์ด์•ผ๊ธฐ ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ๋“ค์„ ์ถฉ์‹คํ•˜๊ฒŒ ์ ์–ด์ค˜์•ผํ•จ

README.md
-> ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ‘œ์ง€๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž

์ด ๋ ˆํฌ์˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ฌธ์„œ์ด๋‹ค

.gitignore ํ•  ๋•Œ ์ฐธ๊ณ ํ•  ์‚ฌ์ดํŠธ
** ์–˜๋Š” ํ˜ผ์ž ๋‹ค์‹œ ํ•ด๋ณด์ž ์‹คํŒจํ•จ..;;

https://www.toptal.com/developers/gitignore

MITLicencse

ํด๋ก ์†Œ์Šค๋ฅผ ์“ฐ๊ณ  ์‹ถ์–ด๋„ ๋ผ์ด์„ผ์Šค GPL ์ด ๊ฐ€์žฅ ์•…๋ช…์ด ๋†’๋‹ค

profile
์™œ๊ฐ€ ๋””ํดํŠธ๊ฐ’์ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€