TIL(Today I Learned)

Git의 사용법을 배우다 - TIL#2

Najdorf 2023. 12. 22. 21:20
728x90

오늘은 Git과 Github Desktop 어플리케이션의 사용 방법을 배웠다. 항상 개발을 하더라도 협업을 할 일이 없어 Git을 배우는 것을 미뤄 왔었는데, 드디어 오늘이 되어서야 사용 방법을 오전 특강을 통해 알게 되었다.

 

꽤나 인상 깊었던 점은, 본래 Git이나 Github이라는 단어를 듣게 되면 무조건 협업을 하는 데에만 쓰이는 것이라고 생각을 했었는데, 개인적인 프로젝트를 진행할 때 버전 관리가 매우 용이해진다는 것을 알고는 흥미로웠다. (원래 목적도 버전 관리다.) 그래서 한 편으로는, 이걸 진작에 알고 있었더라면 지난 날에 작성했던 여러 코드들이 한층 더 짜기 쉬웠지 않았을까... 하는 생각도 들었다. 하지만, 이제라도 알고 있으면 된다고 생각하면 문득 다행이라고 느껴진다.

 

Git에는 여러 가지 기능들이 있다. 기본적으로 Repository(저장소)를 만들어 변경 사항이 생길 때마다 메모와 함께 저장하는 방식이다. 약간 게임에서의 세이브 포인트와 비슷한 느낌을 받았다. 과제를 할 때 작성했던 레포트의 내용 중 당장 지우기에는 아깝고 나중에 쓰기 위해 따로 메모장에 문단을 정리해 저장해놓은 경험이 있는데, 완전히 같은 방식으로 Git에서도 스크립트에 대해 동일한 동작을 수행할 수가 있다. 이 기능들이 commit, switch, branch와 같은 기능들이다.

 

Github Desktop 어플리케이션은 위와 같은 Git의 버전 관리 기능들을 시각적으로 다루기 쉽게 GUI를 적용한 것이다. 원래 Git은 깔기만 하면 터미널에서 명령어를 통해 위의 기능을 수행할 수 있지만, 확실히 처음 Git을 다루는 사람이 접근하기에 쉽지 않은 모양새를 하고 있고, 낯선 터미널에 적응하는 데 시간이 소요된다는 단점이 있다. Github Desktop을 비롯한 여러 응용프로그램들은 이를 보완해주는 역할을 하고 있다.

 

Git을 다룰 때는 용어와 개념들을 확실히 인지하는 것이 중요하다고 느꼈다. 다음은 내가 오늘 알게 된 Git의 주요 기능들이다.

  • init : 현재 작업공간에 git을 사용하게 함.
  • add : 지정한 작업물을 commit 하기 전, staging area에 등록해놓음.
  • commit : 지정한 작업물을 메모와 함께 기록해놓음.
    • (정말 중요한 건 commit만 하면 local 영역에만 남아있지 외부로 업로드 되진 않는다.)
  • repository : 저장소. commit한 여러 버전의 작업물들이 들어 있는 곳.
  • diff : 두 버전의 작업물 간의 차이점을 알 수 있게 해준다.
  • branch : 현재 버전의 Main 작업물을 유지한 채, 다른 갈래의 작업물을 만들어 따로 관리하는 것.
  • merge : 두 개의 branch에 따로 속한 작업물을 하나로 합치는 작업. 주의할 건 conflict가 발생할 수 있으니 그럴 경우 해결해야 한다.
  • push : 외부(e.g. Github)에 repository를 업로드하기 위한 작업.
  • clone : repository 복제.
  • pull : 외부에 있는 repository를 내 로컬 작업공간으로 가져오기.
728x90