Basic of Git

Alpaca·2021년 3월 23일
0

Git

목록 보기
1/8

Warning

개인적으로 이해를 하기위해 정리하면서 쓴 글이라 비유가 적절치 않을 수 있습니다
감안하시고 읽어주시면 감사하겠습니다
(또한 이 글은 초보자를 위해 Github desktop을 기준으로 설명하고 있음을 알려드립니다)




프로그래밍에 입문하게되면 여러가지 언어들과도 만나지만 필연적으로 만나게 되는것 중 하나가 Git이다
나도 처음에는 Git이 뭔지 몰랐고 새로운 것에 익숙치 않았지만 결국은 어느정도 적응하게 됐다
오늘은 Git에 대해 알아보도록 하자

GitVersion control을 해주는 녀석이라고 보면 된다
예를 들어 우리가 글을 쓰는 작가라고 해보자
우리는 하루에 A4로 10장의 글을 쓴다고 할 때 일주일이 지나면 70장의 글이 모인다

어느 날 내가 쓴 글을 읽던 중 맘에 들지 않는 부분을 수정했다고 해보자
근데 그 부분을 수정하니 스토리의 전개가 매끄럽지 않아 다른 곳들도 수정을 했다
그리고 다음날 아침 다시 읽어보니 수정 전이 좀 더 맘에 드는게 아닌가?
만약 당신이 Google drive, Naver my box, Apple iCloud등에 저장을 해뒀다면
수정 전에 있던 글을 쉽게 복원할 수 있을 것이다

이게 바로 Git이다
미숙했던 우리의 초기 코드들은 수정을 거듭해가는데 때로는 다시 되돌리고 싶을 때도 있고
무엇을 수정했는지 보고싶을 때도 있다
이를 하나하나 기억해주는게 Git인 것이다

또한 우리는 클라우드서비스를 이용할 때 알기 쉽게 폴더를 만들어서 업로드를 한다
이 폴더역할을 하는 것이 Git에서는 Repository

이때 폴더에 업로드하기 위해서는 doc, docx, hwp등의 파일로 저장해야 된다
그러려면 손으로 쓴 글들을 내 컴퓨터에 저장해야 한다
이처럼 Local repository에 저장하는 것을 Commit이라고 한다

손으로 글을 쓰는 것을 add로 이해하면 될 것이다

그리고 유명 클라우드 서비스에 업로드하듯 나의 CommitGitPush한다
이것이 기본적인 Git의 흐름이라고 보면 된다

사실 Git에는 세 가지 Area가 있다

  1. Working directory(Working area)
  2. Staging area
  3. Commit area

Working area는 나의 개인적인 행동구역이라고 생각하면 된다
VS Code같은 IDE로 코딩을 하고 수정을 하고 하는 것들이 이 Working area에서 일어난다

Staging areaCommit을 하기 전의 영역이다
내가 무엇을 Commit할지 git add로 각각 추가하거나 git add*로 전부를 추가할 수도 있다

Staging area로 보내기 싫을 때(선택적으로 Commit하고싶을 때)는 .gitignore를 만들면 된다

Commit area는 누가 수정했는지, 수정한 시간은 언젠지 등 모든 정보를 갖고있는 영역이다
보통 Commit area에 올라가면 우리는 Github를 통해 볼 수 있게 된다

아래 이미지를 보면서 Git flow를 이해해보자

여기까지 Git의 기본적인 흐름을 이해했다면 다음은 Branch에 대한 이야기다

이미지을 하나 보도록 하자

우리가 기본적으로 Commit을 하는 곳은 Master(or main)영역이다
Branch들이 만들어지기 직전의 CommitCommon base라고 하며 이는 Branch들의 시작지점이 된다
Branch에 새로운 것들을 작성하고 Commit하면 Feature tip이 되고 이는 Master tip보다 조금 더 앞서가게 된다
중간에 Master tip을 수정하게되면 Branch들에게는 반영이 되지 않는다
이때 우리는 Update from default branch를 통해 이 Branch들에게 Maser tip의 변경사항을 반영시킬 수 있다
그리고 이 Feature tip의 내용을 Master tip과 합치고 싶다면 원하는 BranchMerge하면 된다

Merge를 했다면 이제 우리는 New merge commit상태가 되는 것이다

profile
2020년 10월 15일 퇴사하고 개발자의 길에 도전합니다.

0개의 댓글