GIT

โšก๏ธ VSCode ๋‚ด์žฅ GIT ์‚ฌ์šฉ๋ฒ• ์ด์ •๋ฆฌ

์ธํŒŒ_ 2022. 5. 17. 09:08

VSCode-git

GIT GUI

GIT์€ CLI ํˆด์ด๋‹ค. GIT์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์€ CLI ํ„ฐ๋ฏธ๋„๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ž˜ํ”„ ๊ฐ™์€ ์‹œ๊ฐ์ ์ธ ์š”์†Œ๋„ ํ…์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”ฝ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ํ…์ŠคํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ ํ™”๋ฉด์€ ๊ฐ€๋…์„ฑ์ด ๊ทธ๋ ‡๊ฒŒ ์ข‹์ง€ ์•Š์œผ๋ฉฐ, ๋ช‡๋ช‡ ๊ธฐ๋Šฅ์€ ์‹œ๊ฐ์  ํ‘œํ˜„์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

 

GIT GUI๋ž€, Graphical User Interface์˜ ์•ฝ์ž๋กœ ์ดˆ๋ณด์ž๊ฐ€ ๋ช…๋ น์ด๋‚˜ ์ž‘์—…์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ”„๋กœ์ ํŠธ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ UI๋กœ ์‹œ๊ฐํ™” ํ•˜์—ฌ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.

GIT GUI ํˆด์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • github desktop
  • SourceTree
  • GitKraken
  • Fork
  • SmartGit
  • Git Cola
  • GitForce
  • Giggle
  • Magit
  • Egit
  • Gitg

๋ณด๋ผ์ƒ‰์œผ๋กœ ํ‘œ๊ธฐํ•œ GIT GUIํˆด๋“ค์ด ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๊ณ  ์ž์ฃผ ์“ฐ์ธ๋‹ค.

์ด ํˆด๋“ค์€ ๋งค์šฐ ํ›Œ๋ฅญํ•˜๋ฉฐ ํ•„์ž๋„ ์–ผ๋งˆ์ „ ๊นŒ์ง€ Fork๋ฅผ ์ผ์ง€๋งŒ, ์ฝ”๋”ฉ์—๋””ํ„ฐ์—์„œ ์ฝ”๋”ฉํ•˜๋‹ค ์ปค๋ฐ‹ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์—๋””ํ„ฐ๋กœ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ์ ์—์„œ ๋ถˆํŽธํ•จ์„ ๋А๋ผ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ์ž…๋ ฅ๋„ ๋”ฐ๋กœ CMD๋ฅผ ๋„์šฐ์ง€์•Š๊ณ  VSCode์— ๋‚ด์žฅ๋œ ํ„ฐ๋ฏธ๋„๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์–ด, GIT CLI๋ฟ๋งŒ ์•„๋‹ˆ๋ผ GIT GUI ๊ธฐ๋Šฅ๋„ VSCode์—์„œ ์ œ๋Œ€๋กœ ์จ๋ณผ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ํ•ด์„œ ํ•™์Šตํ• ๊ฒธ ํฌ์ŠคํŒ… ํ•ด๋ณธ๋‹ค.

VSCode์˜ ๋‚ด์žฅ๋œ GIT GUI ๊ธฐ๋Šฅ์€ UI/UX ์ธก๋ฉด์—์„œ ์ฉ ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ, ํ™•์‹คํžˆ ํ„ฐ๋ฏธ๋„๋กœ GIT์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ํŽธํ•˜๊ฒŒ ์ปค๋ฐ‹ํ• ์ˆ˜์žˆ๋‹ค.

๋”๊ตฐ๋‹ค๋‚˜ VSCode์˜ Extension ํˆด๋“ค๊ณผ ์—ฐ๋™ํ•ด ๊ณ ๊ธ‰๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ•๋ ฅํ•œ ๊ฐ•์ ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์–ด ์œ ๋ฃŒ IDE์ธ IndelliJ๋‚˜ WebStorm ๋ถ€๋Ÿฝ์ง€ ์•Š๊ฒŒ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฒˆ ๊ฐ•์˜์—์„  ์ „๋ฐ˜์ ์ธ VSCode GIT GUI ์‚ฌ์šฉ๋ฒ•์„ ์ตํ˜€๋ณด๊ณ , VSCode Extension๋ฅผ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์„œ ๋‹ค๋ฅธ ์œ ๋ฃŒ ์—๋””ํ„ฐ(IntelliJ, WebStorm) ์ˆ˜์ค€์˜ IDE๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๊ฒ ๋‹ค. 


VSCode - GIT ์ต์Šคํ…์…˜ ์ถ”์ฒœ

VSCode์— ๋‚ด์žฅ๋œ GIT๋งŒ์„ ์ด์šฉํ•˜๊ธฐ์—๋Š” ๊ธฐ๋Šฅ์ด๋‚˜ UI๊ฐ€ ์•ฝ๊ฐ„ ์•„์‰ฝ๊ณ  ๋”ธ๋ฆฐ๋‹ค.

ํ•˜์ง๋‚˜ ์œ ์ €๋“ค์ด ๋งŽ๋“  ํ›Œ๋ฅญํ•œ VSCode ์ต์Šคํ…์…˜์œผ๋กœ ๊ฐ’๋น„์‹ผ ์œ ๋ฃŒ IDE ๋ชป์ง€์•Š์€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋‹ˆ ํ•œ๋ฒˆ ๋‘˜๋Ÿฌ๋ณด๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š๋‹ค. (์ด๋ฒˆ ๊ฐ•์˜๊ธ€์—์„œ๋„ ์ค‘๊ฐ„์ค‘๊ฐ„์— ์ต์Šคํ…์…˜์„ ์†Œ๊ฐœํ•  ์˜ˆ์ •์ด๋‹ค)

 

[VSCode] ๐Ÿ’ฝ GIT - Extension ๐Ÿ’ฏ ์ถ”์ฒœ (2022-05-17 ์—…๋Žƒ)

GIT ์ต์Šคํ…์…˜ ์ด๋ฒˆ ํฌ์ŠคํŒ…์€, VSCode์—์„œ GIT์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด ํŽธ๋ฆฌํ•˜๊ณ  ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” vscode ์ต์Šคํ…์…˜์„ ์ถ”์ฒœ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์Œ ์†Œ๊ฐœํ•˜๋Š” ์ต์Šคํ…์…˜๋“ค์€ ํ•„์ž๊ฐ€ ์ง์ ‘ ์„ค์น˜ํ•ด์„œ ์‚ฌ

inpa.tistory.com


VSCode - GIT GUI ์‚ฌ์šฉ๋ฒ•

 

VSCode - git init

์ฒ˜์Œ VSCode๋ฅผ ์ƒˆ์ฐฝ์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

ํด๋”๋ฅผ ํ•˜๋‚˜ ์—ด์–ด๋ณด์ž.

git init

 

์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ” ๋ฉ”๋‰ด์—์„œ GIT ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด, [ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ดˆ๊ธฐํ™” ] ๋ฒ„ํŠผ์ด ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

์ด ๋ฒ„ํŠผ์ด git init ๋ช…๋ น์–ด๋ฅผ GUI๋กœ ํ‘œํ˜„ํ•œ ๋ฒ„ํŠผ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

[ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ดˆ๊ธฐํ™” ] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด .git ์ˆจ๊น€ํด๋”๊ฐ€ ์ถ”๊ฐ€๋จ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

git init
git init

 

 

VSCode - git add / git status

GIT ํด๋”์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•„๋ฌด txt ํŒŒ์ผ๋“ค์„ ์ถ”๊ฐ€ํ•ด๋ณด์ž.

๊ทธ๋Ÿฌ๋ฉด ํŒŒ์ผ ์šฐ์ธก์— U ๋ผ๊ณ  ๋นจ๊ฐ„ ๊ธ€์”จ(์—๋””ํ„ฐ ์ฝ”๋“œ์ƒ‰์ƒ ํ…œํ”Œ๋ฆฟ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ์ˆ˜๋„ ์žˆ๋‹ค)๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์žˆ์„ ํ…๋ฐ, ์ด๋Š” 

GIT์ด ์•„์ง ๊ด€๋ฆฌ๋ฅผ ์•ˆํ•˜๋Š” ํŒŒ์ผ Untracked์˜ ์•ฝ์ž์ด๋‹ค.

์‹ค์ œ๋กœ ํ„ฐ๋ฏธ๋„์— git status๋ฅผ ์ณ๋ณด๋ฉด ์ถœ๋ ฅ๋˜๋Š” ์ •๋ณด์™€ ํ‘œ์‹œ๊ฐ€ ๊ฐ™์Œ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค.

git add / git status

 

์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์— GIT ์•„์ด์ฝ˜์„ ๋ณด๋ฉด 3 ์ด๋ผ๊ณ  ์ˆซ์ž๊ฐ€ ํ‘œ์‹œ๋˜์–ด์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ ํŒŒ์ผ์ด 3๊ฐœ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

GIT ๋ฉ”๋‰ด์— ๋“ค์–ด๊ฐ€ ์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ ํŒŒ์ผ๋“ค์„ ์Šคํ…Œ์ด์ง•(git add) ์‹œํ‚ฌ์ˆ˜์žˆ๋‹ค.

ํŒŒ์ผ ๊ฐœ๋ณ„๋กœ ํ• ์ˆ˜๋„ ์žˆ๊ณ  ํ•œ๋ฒˆ์— ํ• ์ˆ˜๋„ ์žˆ๋‹ค.

git add / git status
git add / git status

 

 

VSCode - git restore --staged

์Šคํ…Œ์ด์ง•์„ ์ทจ์†Œํ• ๋•Œ๋Š” ๋‹ค์Œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ฐ„๋‹จํžˆ add๋ฅผ ์ทจ์†Œ ํ• ์ˆ˜ ์žˆ๋‹ค.

๋‹จ, ์ˆ˜์ •(modified) ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด, ๋ชจ๋‘ addํ•ด์„œ ์Šคํ…Œ์ด์ง•ํ•ด์•ผ ์ทจ์†Œํ• ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์€ ์œ ์˜ ํ•˜์ž.

git rm --cached

 

 

VSCode - .gitignore

vscode ์ต์Šคํ…์…˜์„ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

gitignore - Visual Studio Marketplace

Extension for Visual Studio Code - Lets you pull .gitignore templates from the https://github.com/github/gitignore repository. Language support for .gitignore files.

marketplace.visualstudio.com

.gitignore
.gitignore
.gitignore

 

 

VSCode - git commit

์ปค๋ฐ‹์€ GIT GUI๋ฅผ ์“ฐ๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ์ด๋‹ค.

์•„๋ฌด๋ž˜๋„ ์ผ์ผํžˆ ๋ช…๋ น์–ด๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ์—๋Š” ์†๊ฐ€๋ฝ์ด ์•„ํ”„๋‹ค..

๊ฐ„๋‹จํ•œ ๋ฒ„ํŠผ ์กฐ์ž‘์œผ๋กœ ์•„์ฃผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ปค๋ฐ‹์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

git commit
git commit

 

Commit Message ์—๋””ํ„ฐ ์ต์Šคํ…์…˜

 

Commit Message Editor - Visual Studio Marketplace

Extension for Visual Studio Code - Edit commit messages in a convenient way.

marketplace.visualstudio.com

๋ณด๋‹ค์‹œํ”ผ VSCode์˜ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋Š” ํ•œ์นธ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ปค๋ฐ‹์„ ํ• ๊ฒฝ์šฐ๋Š” ๋ฌธ์ œ์—†์ง€๋งŒ, ํŒ€ ํ˜‘์—…์œผ๋กœ ์ผํ• ๋•Œ๋Š” ์ปค๋ฐ‹์ œ๋ชฉ๊ณผ ์ปค๋ฐ‹๋‚ด์šฉ์„ ๊ธธ๊ฒŒ ์ ์–ด์ฃผ์–ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค.

์œ„์˜ ์ต์Šคํ…์…˜์„ ๊น”๋ฉด ์—๋””ํ„ฐ ์ฐฝ์—์„œ ์ปค๋ฐ‹ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

Commit ๋ฉ”์„ธ์ง€ ์—๋””ํ„ฐ ์ต์Šคํ…์…˜

 

 

VSCode - gitmoji

๊นƒ๋ชจ์ง€๋Š” ๊นƒ ์ปค๋ฐ‹์— ์ด๋ชจํ‹ฐ์ฝ˜์„ ์‚ฌ์šฉํ•ด ๋ณด๋‹ค ์‹œ๊ฐ์ ์œผ๋กœ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์˜๋ฏธ์ ์œผ๋กœ ์•Œ์•„๋ณผ์ˆ˜์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

 

[GIT] โšก๏ธ Gitmoji ์‚ฌ์šฉ๋ฒ• (Gitmoji-cli)

Gitmoji๋ž€? Gitmoji = git + emoji ์ž…๋‹ˆ๋‹ค. ๊ธ€์„ ์“ธ ๋•Œ ์ด๋ชจ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด, ๋‚˜์ค‘์— ๊ธ€์„ ์ฝ์„๋•Œ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹ํ•  ๋•Œ๋„ ์ด๋ชจ์ง€๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด, ๋‚ด์šฉ์„ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ๋” ์‰ฝ๊ฒ ์ฃ . carloscuesta/gitmoji An emo..

inpa.tistory.com

gitmoji

 

VSCode์—์„œ Gitmoji ๊ด€๋ จ ์ต์Šคํ…์…˜์„ ๊น”๋ฉด, GUI์—์„œ ์•„์ฃผ ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ์ต์Šคํ…์…˜์„ ์„ค์น˜ํ•˜๋ฉด ์ƒ๋‹จ์— ๐Ÿ™‚ ์•„์ด์ฝ˜์ด ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ฐ ์ด๋ชจ์ง€์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ฒ˜ ์˜๋ฏธ์™€ ํ•จ๊ป˜ ๋ฉ”๋‰ด๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

์ปค๋ฐ‹ ๋ชฉ์  ์˜๋ฏธ์™€ ๋งž๊ฒŒ ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ์ ์œผ๋กœ ๋›ฐ์–ด๋‚œ ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Gitmoji - Visual Studio Marketplace

Extension for Visual Studio Code - Gitmoji tool for git commit messages in VS Code

marketplace.visualstudio.com

gitmoji

 

 

VSCode - git log

GIT ๋กœ๊ทธ ๋˜ํ•œ GIT GUI๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋‹ค.

GIT ํ„ฐ๋ฏธ๋„์—์„  git log --graph ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ…์ŠคํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ GIT ๊ทธ๋ž˜ํ”„๋ฅผ ๋ด์™”๋‹ค.

..์†”์งํžˆ ์‹œ๊ฐ์ ์œผ๋กœ ์กฐ์žกํ•˜๋‹ค.

git log

 

Git Graph ์ต์Šคํ…์…˜

VSCode์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ GIT ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

ํ•˜์ง€๋งŒ VSCode ์ต์Šคํ…์…˜์—์„œ ์•„์ฃผ ๊ณ ํ€„์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

Git Graph - Visual Studio Marketplace

Extension for Visual Studio Code - View a Git Graph of your repository, and perform Git actions from the graph.

marketplace.visualstudio.com

Git Graph

๋‹จ์ˆœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํŒŒ์ผ diff ๋ฐ ์ƒํ˜ธ์ž‘์šฉ์„ ์ง€์›ํ•œ๋‹ค.

์ด ํ•˜๋‚˜๋งŒ์œผ๋กœ GIT GUIํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„์ด ์—†์„ ์ •๋„๋กœ ๊ฐ•๋ ฅํ•œ ์ต์Šคํ…์…˜ ํˆด์ด๋‹ค.

VSCode ์—๋””ํ„ฐ ํ•˜๋‹จ๋ฉ”๋‰ด์˜ Git Graph ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ GIT ๋กœ๊ทธ๋ฅผ ๋ณผ์ˆ˜ ์žˆ๋‹ค.

 

Git History ์ต์Šคํ…์…˜

์ด๊ฒƒ๋„ git graph๊ฐ™์ด ๊ทธ๋ž˜์ธ  ๋ฐ ์„ธ๋ถ€์ •๋ณด์™€ ํ•จ๊ป˜ ๋กœ๊ทธ๋ฅผ ๋ณผ์ˆ˜์žˆ๋Š” ์ต์Šคํ…์…˜์ด๋‹ค.

๋‘˜์ด ์•ฝ๊ฐ„ ๊ธฐ๋Šฅ์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ์–ด, ๊ฐ™์ด ์จ๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

์ฃผ๋กœ ๊ฐœ๋ณ„ ํŒŒ์ผ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๋ฆฌ ๋‚ด์—ญ์„ ์กฐํšŒํ• ๋•Œ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

Git History

 

 

VSCode - git diff

diff๋Š” ์ˆ˜์ •ํ•œ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ปค๋ฐ‹๋œ ์ด์ „ ํŒŒ์ผ ๋‚ด์šฉ๊ณผ ์–ด๋А๋ถ€๋ถ„์ด ์ˆ˜์ •๋ฌ๋Š”์ง€ ์ˆ˜์ •๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

ํ„ฐ๋ฏธ๋„์—์„  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œํ•ด์ฃผ๋Š”๋ฐ, ์†”์งํžˆ ๊ฐ€๋…์„ฑ์ด ๋งค์šฐ ์•ˆ์ข‹๋‹ค.

git diff

 

์™ธ๋ถ€ diff ํˆด๋„ ์กด์žฌํ•˜์ง€๋งŒ, ๊ฐ„๋‹จํ•˜๊ฒŒ VSCode๋‚ด์—์„œ diff ์ƒํƒœ๋ฅผ ๊ทธ๋ž˜ํ”ฝ์ ์œผ๋กœ ๋ณผ์ˆ˜ ์žˆ๋‹ค.

์šฐ์„  dog.txt ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค.

git diff

 

๊ทธ๋ฆฌ๊ณ  GIT ๋ฉ”๋‰ด์— ๊ฐ€์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์˜ ํŒŒ์ผ์„ ๋ˆ„๋ฅด๋ฉด ์—๋””ํ„ฐ ํ™”๋ฉด์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ํŒŒ์ผ์˜ ์ฐจ์ด ์ˆ˜์ • ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๊ฒŒ ๋œ๋‹ค.

git diff

ํ˜น์€ ์œ„์—์„œ ์„ค์น˜ํ•œ GIT Graph ์ต์Šคํ…์…˜ ๋ฉ”๋‰ด๋กœ ๊ฐ€์„œ๋„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

git diff

 

 

VSCode - git remote

๊นƒํ—™๊ณผ VSCode๋ฅผ ์—ฐ๊ฒฐํ•ด๋ณด์ž.

์šฐ์„  ๊นƒํ—™์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

git remote

 

๊ทธ๋ฆฌ๊ณ  remotes ํƒญ์„ ๋ˆŒ๋Ÿฌ์„œ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ remote๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ˆœ์„œ๋Œ€๋กœ remote ์ด๋ฆ„ (origin)์„ ์ž…๋ ฅํ•˜๊ณ  enterํ•˜๊ณ  ๊นƒ์ €์žฅ์†Œ URL์„ ์ณ์ฃผ๋ฉด ๋œ๋‹ค.

git remote
git remote

 

 

VSCode - git push

์›๊ฒฉ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐ์ด ๋ฌ์œผ๋ฉด ์ด์ œ push๋ฅผ ํ•ด๋ณด์ž.

ํ‘ธ์‹œ๋ฅผ ํ•˜๊ณ  ๊นƒ์ €์žฅ์†Œ๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—…๋กœ๋“œ๊ฐ€ ๋จ์„ ํ™•์ธํ• ์ˆ˜ ์žˆ๋‹ค.

git push
git push

 

 

VSCode - git pull

VSCode๋กœ pull ๋™์ž‘์„ ํ™•์ธํ•ด๋ณด์ž.

์šฐ์„  ๊นƒํ—™ ์ €์žฅ์†Œ์—์„œ ํŒŒ์ผ์„ ์ž„์˜๋กœ ํ•˜๋‚˜ ์‚ญ์ œํ•˜๊ณ  ์ปค๋ฐ‹ํ•ด๋ณด์ž.

git pull
git pull
git pull
git pull

 

์ด์ œ ์›๊ฒฉ์ €์žฅ์†Œ ์ปค๋ฐ‹๊ณผ ๋กœ์ปฌ์ €์žฅ์†Œ ์ปค๋ฐ‹ ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด์ œ pull์„ ํ†ตํ•ด ์›๊ฒฉ์ €์žฅ์†Œ์˜ ์ปค๋ฐ‹๋‚ด์šฉ์„ ๊ฐ€์ ธ์™€๋ณด์ž.

git pull
git pull

 

 

VSCode - git clone

์ด๋ฒˆ์—” ์œ„์—์„œ ์˜ฌ๋ฆฐ ๊นƒํ—™ ์ €์žฅ์†Œ์˜ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ clone ํ•ด๋ณด์ž.

์ƒ๋‹จ ๋ฉ”๋‰ด๋ฐ”์—์„œ VSCode ์ƒˆ์ฐฝ์„ ์—ด์–ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ๋ฅผ ๋ˆ„๋ฅด๋ฉด clone์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

git clone
git clone

 

์ด๋ ‡๊ฒŒ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ณต์ œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ณ ,

์•„๋‹ˆ๋ฉด ์ƒˆํด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ๊ณ  VSCode๋กœ ์—ด์–ด์ฃผ๊ณ , GIT ๋ฉ”๋‰ด์—์„œ [ ๋ณต์ œ ] ๋ฅผ ๋ˆ„๋ฅด๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

git clone

 

 

VSCode - git fetch

git fetch

 

 

VSCode - git reset

์ปค๋ฐ‹์„ ์ทจ์†Œ์‹œํ‚ค๋Š” reset์„ GUI๋กœ ์‚ฌ์šฉํ•ด๋ณด์ž.

reset์—๋Š” 3๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ๋‹ค.

  • –soft : index ๋ณด์กด(addํ•œ ์ƒํƒœ, staged ์ƒํƒœ), ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ ๋ณด์กด. ์ฆ‰ ๋ชจ๋‘ ๋ณด์กด.
  • –mixed : index ์ทจ์†Œ(addํ•˜๊ธฐ ์ „ ์ƒํƒœ, unstaged ์ƒํƒœ), ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ ๋ณด์กด (๊ธฐ๋ณธ ์˜ต์…˜)
  • –hard : index ์ทจ์†Œ(addํ•˜๊ธฐ ์ „ ์ƒํƒœ, unstaged ์ƒํƒœ), ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ ์‚ญ์ œ. ์ฆ‰ ๋ชจ๋‘ ์ทจ์†Œ. ์ž‘์—…๋‚ด์šฉ ๋‹ค ์‚ฌ๋ผ์ง€๋‹ˆ๊นŒ ์™ ๋งŒํ•˜๋ฉด ์‚ฌ์šฉX

git reset
git reset

ํ„ฐ๋ฏธ๋„์—์„  ์ปค๋ฐ‹ ํ•ด์‹œ๊ฐ’ 6์ž๋ฆฌ๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•˜์ง€๋งŒ GUI์—์„œ๋Š” ๋‹จ์ˆœํžˆ ์ปค๋ฐ‹ ๋ชฉ๋ก์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฎ๊ฒจ ๋ฒ„ํŠผ๋งŒ ๋ˆ„๋ฅด๋ฉด ๋˜๋‹ˆ ์ด๋˜ํ•œ GIT GUI์˜ ๊ฐ•์ ์ด๋ผ ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

 

VSCode - git revert

reset์ด ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆฌ๋Š”๊ฑฐ๋ผ๋ฉด, revert๋Š” ์ปค๋ฐ‹์„ ๋ฎ์–ด์“ฐ๋Š” ํ˜•์‹์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋‚ด์šฉ์ด ๊ฐ™์€ ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์ด ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค.

git revert
git revert
git revert

 

 

VSCode - git branch / checkout

๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด๋ณด์ž.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธŒ๋žœ์น˜ ๋ถ„๊ธฐ๋Š” ํ˜„์žฌ ์ปค๋ฐ‹ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ณต์ œ๋˜์–ด ๋ถ„๊ธฐ๊ฐ€ ๋œ๋‹ค.

git branch / checkout
git branch / checkout
git branch / checkoutgit branch / checkout

 

ํŠน์ • ์ปค๋ฐ‹์„ ์ง€์ •ํ•ด์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ๋ถ„๊ธฐํ• ์ˆ˜๋„ ์žˆ๋‹ค.

git branch / checkout

 

์œ„์—์„œ ์„ค์น˜ํ•œ GIT Graph ์ต์Šคํ…์…˜์—์„œ๋„ ๋ฐ”๋กœ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

git branch / checkout

 

 

VSCode - git merge

git merge
git merge

 

์•„๋‹ˆ๋ฉด BRANCHES ์‚ฌ์ด๋“œ๋ฉ”๋‰ด์—์„œ ์šฐํด๋ฆญ์„ ๋ˆ„๋ฅด๊ณ ๋„ merge ํ• ์ˆ˜ ์žˆ๋‹ค.

git merge

 

 

VSCode - git rebase

git rebase
git rebase

 

 

VSCode - git cherry-pick

VSCode ๊ธฐ๋ณธ GIT GUI์—์„œ๋Š” ์ฒด๋ฆฌํ”ฝ์„ ๋”ฐ๋กœ ์ง€์›ํ•˜์ง€์•Š๋Š”๋“ฏ ํ•˜๋‹ค.

์œ„์—์„œ ์„ค์น˜ํ•œ Git Graph ์ต์Šคํ…์…˜์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ปค๋ฐ‹ ํ•ญ๋ชฉ์„ ์šฐํด๋ฆญํ•œ ๋’ค ์ฒด๋ฆฌํ”ฝ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

git cherry-pick

 

 

VSCode - git tag

git tag

 

ํƒœ๊ทธ ์ถ”๊ฐ€ + ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด, ์ƒ๋‹จ์— ์ž…๋ ฅ์ฐฝ์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ,

๋จผ์ € ํƒœ๊ทธ๋ช…์„ ์ž…๋ ฅํ•ด์ฃผ๊ณ  Enterํ•˜๋ฉด, ๋˜๋‹ค์‹œ ์ž…๋ ฅ ์ฐฝ์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ annotated ํƒœ๊ทธ ๋ฉ”์„ธ์ง€ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด annotated ํƒœ๊ทธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

๋งŒ์ผ annotated ํƒœ๊ทธ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ๋นˆ์นธ์œผ๋กœ Enter์น˜๋ฉด lightweight ํƒœ๊ทธ๋กœ ์ฒ˜๋ฆฌ ๋˜๊ฒŒ ๋œ๋‹ค.

git tag
git tag

 

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํƒœ๊ทธ๊ฐ€ ๊ตฌ์„ฑ๋จ์„ ํ™•์ธํ• ์ˆ˜ ์žˆ๋‹ค.

git tag

 

 

VSCode - git stash

git stash
git stash