Git, GitHub Chap.5

Lilmeow·2023년 8월 30일
0

Git, GitHub

목록 보기
8/9
post-thumbnail

Chap.5 실무 사례와 함께 Git 다루기

01_실습을 위한 사전 준비

1) GitHub에서 새로운 Repository 만들기

  • Project를 시작하는 데에는 두 가지 방식이 존재
  1. GitHub에서 Repositiry를 만들고 내 Local에 Clone
  2. Local Repository에서 먼저 작업 후 GitHub Repository를 만들고, Local에 Remote add
    결과는 같지만 1번이 더 간편
  3. VSCode에서 GUI 사용 시 인증 문제를 방지하기 위해 "Git Graph 1" 포스팅을 참고

2) Sourcetree에서 GitHub Repository Clone

VSCode Extension인 Git Graph에는 Amend 기능이 아직 없는 것 같아 Sourcetree로 실습할 것을 권장한다.

02_Amend: 수정 못한 파일이 있어요, 방금 만든 Commit에 추가하고 싶어요

1) Local Repository의 마지막 Commit 수정하기

Commit을 하나 만들었는데 추가할 파일을 깜빡했을 때, Amend라는 명령어를 사용하여 Commit을 수정할 수 있다.
원격 Repository에 Push했어도 수정 가능.

2) 원격 Repository의 마지막 Commit 수정하고 강제 Push

03_Cherry-Pick: Commit 하나만 떼서 지금 Branch에 붙이고 싶어요

1) Branch 전략 살펴보기

Branch 전략 : 여러 개발자가 협업할 때 Branch를 효과적으로 관리하기 위한 Workflow

ex)

  • Main Branch에서 각자 'feat/func'으로 Branch를 따서 개발
  • 개발이 끝난 Branch는 Merge into Main Branch
  • Main Branch 코드는 자동으로 test.itshirt.com에 배포되어 항상 최신 개발 버전을 볼 수 있다.
  • Main Branch에서 굵직한 개발이 끝나면 Merge into Latest Branch, 이를 실제 서버인 itshirt.com에 Realease

Realease한 코드가 담긴 Lastest Branch에 당장 고쳐야 하는 버그가 있다는 것을 늦게 알았다.
Main Branch에서 Fix/Text-bug Branch를 따서 고치고 Merge into Main Branch하여 Latest Branch에 반영해야 하는데, Main Branch에 있는 다른 변경 사항 말고 버그를 고친 Commit만 반영하려 한다.
이때 Cherry-Pick을 사용

2) 다른 Branch의 Commit 하나만 내 Branch에 반영하기

04_Reset: 옛날 Commit으로 Branch를 되돌리고 싶어요

1) 모든 기억을 남기면서 Branch를 되돌리기

Reset[Mixed Mode] = 작업 상태는 그대로 두지만 Index는 Reset, 원하는 Commit으로 Branch를 되돌리면서도 변경 사항은 Commit하기 전 상태로 남겨 두는 기능, 변경 사항을 Stage 아래로 둬서 다시 무엇을 Stage로 올릴 지 고민할 수 있다.

변경 사항이 Stage 아래에 살아났기 때문에 맘대로 다시 수정이 가능하다.
마치 과거로 돌아갔지만 복권 번호는 기억하는 것과 같다.
복권을 살지, 몇 장을 살지는 본인 맘대로 다시 정할 수 있는 것이다.

Reset[Soft Mode] = 모든 Local 변경 사항을 유지, Mixed Mode랑 똑같지만 변경 사항을 Stage에 두기 때문에 다시 Commit을 바로 할 수 있다는 차이점이 존재.

2) 모든 기억을 지우며 Branch를 되돌리기

Reset[Hard Mode] = 모든 작업 상태 내 변경 사항을 버림, Checkout이 어디에 있든지, 변경 사항 여부와 상관 없이 어디로든 깔끔하게 이동할 수 있다.

마치 과거로 돌아갔는데 머릿속도 과거의 기억으로 돌아간 것이다.

05_Revert: 이 Commit의 변경 사항을 되돌리고 싶어요

1) Commit의 변경 사항을 명시적으로 되돌리는 새로운 Commit 만들기

Commit의 변경 사항을 없애고 싶은데, 깔끔하게 돌아가는 Reset과는 다르게 Revert는 돌아갔다는 흔적을 새로운 Commit으로 남기면서 돌아가는 것.

06_Stash: 변경 사항을 잠시 다른 곳에 저장하고 싶어요, Commit은 안 만들래요

1) Commit하지 않은 변경 사항을 서랍 속에 넣어 두기

Stash = Commit하기 전의 여러 파일의 변경 사항들을 임시로 저장할 수 있는 기능
Git Graph로 예시를 들자면, 최상단의 "Uncommitted Changes (x)"가 잠시 사라지는 것.
그 상태에서 변경된 파일에 신경 쓰지 않고 자유롭게 Pull, Checkout 등의 다른 작업이 가능해진다.
참고로 Stash에는 한 번이라도 Add했던 파일들(Tracked Status)만 들어간다.
따라서 새로 만든 파일은 Untracked Status이므로 들어가지 않는다.

0개의 댓글