xtring.dev

[Git] Git을 시작해보자! - Git의 기본개념(Commit, Push, Pull, Branch) 본문

for Dev./Git | Github

[Git] Git을 시작해보자! - Git의 기본개념(Commit, Push, Pull, Branch)

xtring 2020. 7. 8. 13:23
반응형

Git을 왜 사용해야하지?


  개발자라면 어느 누구나 'Git'에 대해서 들어 보셨을 거에요! 'Git을 통해 협업을 한다.', '버전 관리를 하기 위해서 Git을 사용한다.' 이런 말을 흘려들어서 라도 들어봤을거에요. 맞습니다. Git은 다수의 사람들과 협업하고 공유하고 관리하기 위해 사용하는 분산 버전관리 시스템입니다.

  두 명의 개발자가 하나의 서비스를 효율적으로 합치고 비교하고 관리하기 위해서는 필수적으로 필요한 것이 Git입니다! 지금부터 Git에 대해서 알아 보겠습니다.

 

 

 

 

 

 

  Git에 대해 더 이해해봅시다.

  코딩을 할 때 단순히 Command + z(ctrl + z)를 눌러 이전 상태로 되돌린다면 어떤 시점에 어떤 것들이 바뀌었는지 모두 기억하기 어렵습니다. Git은 이 시점들을 원하는 시점마다 버전을 만들어주며 이 버전들 사이를 자유롭게 돌아다닐 수 있게 해줍니다. 또한 내가 만든 버전 뿐만 아니라 동료가 만든 버전으로 이동할 수도 있고, 동료와 내 버전을 비교해서 최신본으로 코드를 업데이트 할 수 있습니다.

 

  따라서 Git은 저장 공간만 있으면 어디서나 사용할 수 있습니다. 그래서 '분산 버전관리 시스템'이라고도 말합니다. 

 

  Git을 사용하는데 있어 Command 입력을 통해 컨트롤하는 방법(CLI)과 프로그램의 그래픽을 통해 컨트롤하는 방법(GUI)이 있습니다. 이 두 가지 방법 중 자신이 편한 관리방법을 사용하면 됩니다.

 

 

 

 

 

 

 

기본 개념

 

Commit

 

  Commit 이란 변경사항에 대한 코드 덩어리(실제로는 변경사항에 대한 snapshot의 개념)입니다. Commit은 코드가 수정되고 이를 Git에서 고정할 때 만들게 됩니다. 주로 '클릭 버그를 고쳤다!', '메인 페이지를 만들었다!' 등... 코드 작업물에 대한 결과를 Commit 합니다.

 

  CLI에서는 git commit -m "commit message"

  GUI에서는 'Commit' 버튼을 클릭

하여 Commit을 만들게 됩니다.

 

  이렇게 만들어진 Commit들은 꾸준히 쌓이게 되며 줄줄이 이어진 형태로 연결됩니다. 그렇게 해서 저희는 이제 Commit 사이를 이동 할 수 있는 것이죠. 이 커밋들을 만드는 시점은 위에서 말했 듯이 '각각의 의미있는 변동사항을 Commit'합니다.

 

 

 

 

Push

 

  그럼 이제 제가 찍어온 Commit들을 원격(공동) 저장소에 올려야겠죠? 그때 우리는 Push command를 통해 원격 저장소(Git의 클라우드 저장소; GitHub, GitLab)에 올릴 수 있습니다. 

 

  CLI에서는 git push origin master

  GUI에는 'Push' 버튼을 클릭

하여 Push 할 수 있습니다.

 

  Push가 완료되면 원격 저장소에도 새로 작성한 코드가 업데이트되고 이를 공동작업하는 모두가 알 수 있게 됩니다.

 

 

 

 

Pull

 

  공동 작업자들이 작성 코드를 내 프로젝트에도 가져와서 적용하는 방법도 알아야겠죠? Pull command를 이용하면 원격 저장소에 있는 코드를 로컬 저장소(자신의 컴퓨터에 있는 저장소)로 업데이트 할 수 있습니다.

 

  CLI에서는 git pull

  GUI에서는 'Pull'

하면 됩니다.

 

 

 

 

Branch

 

  Branch는 말 그대로 가지라는 의미인데요. Branch를 통해 저장소에 각자의 버전을 생성 할 수 있습니다. 하나의 저장소에서 다른 개발자들과 함께 작업 할때 Branch를 통해 새로운 Commit Line을 만들어서 다른 작업들을 할 수 있게 되는 것이죠. 예를 들어 현재 진행되고 있는 프로젝트에 테스트를 하고 싶은 경우 새로운 Branch를 파서 그 Branch에서 기능 테스트를 하고 이전 커밋으로 돌아갈 수 있습니다. 또는 Feature 단위의 기능을 만들게 되면 주 브랜치(master, develop 등...)에 Merge(병합) 할 수 있습니다.

 

  Branch와 같은 작업을 하는 이유는 같은 프로젝트에서 코드를 동시에 다른 코드로 수정하게되면 둘의 코드가 충돌이 나게 됩니다. 그럼 이 중복되어 충돌된 코드들은 바로 합쳐지지 않게 되는 것이죠. 만약 충돌이 나더라도 충돌이 발생한 코드를 명시적으로 수정하여 해결이 가능합니다.

 

  CLI는 git branch-name

  GUI에서는 'Branch' 버튼

을 클릭하여 생성이 가능합니다.

 

 

 

 

Merge  

  branch에서 작업이 끝나게 되면 이제 코드를 합쳐야겠죠? 각자의 코드를 작성한 branch에서 하나의 branch line에 병합하는 것을 Merge라고 합니다.

 

  CLI는 git merge branch-name

  GUI에서는 'Merge' 버튼

을 클릭하면 됩니다.

 

  여기서 주의해야 할 사항은 현재 branch에서 다른 branch로 Merge를 실행하면 다른 branch로 덮어쓰기가 진행됩니다. 따라서 Git flow를 고민하며 Merge해야합니다.

 

 

 

 

 

 

 

...포스트에서는 Git을 통한 버전 관리를 조금 더 알아보겠습니다.

반응형
Comments