[GIT] CLI / Git / Github / branch

아임 레조·2020년 10월 19일
0

STUDY

목록 보기
29/34
post-thumbnail

🎩 Git과 github를 보기 전에

Command Line에 대해 배우고 나서 git과 git hub를 처음 접했다. 터미널(나는 우분투 사용자다)을 열고 작업을 하면 뭔가 개발자답고 멋지다는 말을 우스갯소리로 동기들이 했는데 그때 나는 'command line은 무엇이고 git은 또 뭐냐'할 정도로 당황하고 있었다. 역시 뭐든 해봐야 는다고 프리코스를 진행하면서 직접 여러 번 사용을 해보고 난 지금에서야 관련 내용 정리를 할 수 있게 되었다.

👚 CLI vs GUI

CLI(Command Line Interface)는 명령 줄 인터페이스 또는 명령어 인터페이스라고 하며 텍스트 터미널을 통해서 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. (출처: 위키백과) CLI는 git 명령어를 입력할 때 사용하기도 한다. 거의 모든 운영체제에서 GUI(Graphic User Interface)를 지원하기 때문에 평상시 모니터(창)를 보면서 키보드나 마우스로 컴퓨터 작업을 한다. 그런데 간혹 마우스를 사용할 수 없는 상황(...) 혹은 모니터에서 GUI를 사용할 수 없는 경우가 생길 수 있다(침착해!). 이럴 때는 클릭을 통해 프로그램을 실행시키는 것이 어렵기 때문에 침착하게 터미널을 열고 command line을 이용해서 원하는 작업을 진행하면 된다. 이게 처음에는 익숙하지 않아서 참 당황스러웠는데 사용할수록 편리하다는 생각이 들었다.


🎩 그럼 이제 Git

Git은 Version Control System(VCS) 중 하나로 분산시스템이다.
git을 이용하면,

  • 자연스럽게 백업할 수 있다.
  • 여러 번 작업한 버전을 저장해서 저장된 내용을 파악하기도 쉽고 다시 되돌리기도 가능하다.
  • 한번에 여러 명이 따로인 듯 함께인 듯 충돌하는 일 없이 협업 할 수 있다.
  • 나의 파일과 git 히스토리를 공유할 수 있다.

👚 git과 github는 같은 건가?

여기서 참으로 헷갈렸던 것이 '그럼 git과 github의 차이는 도대체 뭐냐?'였다. 이에 대한 해답이 아래의 이미지 파일에 잘 정리되어 있다.
(이미지 출처: http://www.vgizy.com/are-git-and-github-the-same-thing-or-not/)

노마드코더의 니콜라스의 비유에 따르면, git은 커피이고 github는 커피숍이다. git이 리포지토리(repository: 버전 관리 시스템에서, 저장소 또는 리포지토리는 파일이나 디렉터리 구조의 집합을 위해 메타데이터를 저장하는 자료 구조이다 - 출처: 위키백과) 즉, 소스코드 저장소라면 github는 git을 사용하는 사람들이 모여서 만든 일종의 social platform인 것이다.


👚 Git과 Github 사용하기

👖 간단하게 흐름 파악하기

내 나름대로 손으로 그려가며 정리해보았다. 과제를 github에 push하고 pull 할 수 있도록 몇 번 연습했기 때문에 혼자서 작업하는 것은 어느 정도 익숙해졌다.


👖 여러 사람과 협업할 경우

오늘은 처음으로 페어와 함께 협업한 뒤 github에 push하고 pull 하는 연습을 해보았다. 특히 인상 깊었던 것은 충돌(Conflict)이 발생하는 경우와 이를 해결하는 것이었다. 또 파일을 서로 보내주고 다운로드 하지 않고도 너무 편하게 작업 내용을 공유할 수 있어서 깜짝 놀랐다. 조금 더 연습해보고 익숙해져야지.

위의 흐름과 크게 다르지 않은데 페어와 작업을 하기 위해서는 페어의 git과 나의 git을 연결해주는 작업을 추가해 주어야 했다. git remote add pairgit remote -v가 사용됐다.


👖 Branch

새로운 기능을 개발하거나 원본에 영향을 주지 않고 다양한 시도를 해보고 싶을 때, 여러 사람이 동시에 작업을 할 때 등등 branch를 활용하면 좋다. 작업하는 공간을 이동할 수도 있고(git checkout), branch를 만들고 동시에 그곳으로 이동할 수도 있으며(git checkout -b), branch들을 합칠 수도 있다(git merge).

profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

0개의 댓글