본문 바로가기
유용한기술

[GIT] 프로젝트의 시작 GIT

by DuncanKim 2022. 6. 14.
728x90

[GIT] 프로젝트의 시작 GIT

 

commit의 시작 git.

 

1일 1커밋의 생활도 여기에서부터 시작된다.

git은 프로그램의 버전의 수정의 전과정을 기록하고 있고, 이전 버전에서 어떤 것이 달라졌는지를 알려주는 도구이다.

당연히 어떤 부분이 달라졌는지를 알 수 있다면 '백업'의 기능도 한다고 할 수 있고,

'백업'을 할 수 있으니 공동작업이 가능해진다.

 

이제까지는 기본 언어, 알고리즘 등의 기초 공부만을 했다면,

실무에 필요한 기술들을 하나씩 알아나가 볼 것이다.

(그렇지만 아직 기초도 탄탄하지 못하다...)

 

이번 포스팅은 깃은 어디에 써먹는가, 어떻게 써먹는가에 대한 기초를 간단히 기록해놓는 목적으로 한다.

 

 

1. 깃은 어디에 써먹을까


위에서 말했듯 버전 관리, 백업, 협업 이 세 가지에 활용하려고 깃을 쓴다.


 

(1) 버전 관리 

 

내가 어떤 코드를 제작하는데, 깃을 활용해서 그 코드를 어제 커밋(어딘가에 업로드)했다고 치자.

오늘 수정을 해서 새로운 커밋을 한다고 하면, 깃은 어제 코드와 오늘 코드를 동시에 저장해두고,

어디가 바뀌었는지, 삭제되었는지 등의 정보를 나에게 알려준다.

깃을 쓴다면 이럴 필요가 저언혀 없다. 버전 업데이트를 통해서 가지고 있는 최신의 버전이 찐최종이기 때문이다.

파일도 여러개 가지고 있을 필요가 없다.

 

work.txt 파일의 버전이 work 1, work 2 이렇게 존재하는데,

그 속에서 무엇이 바뀌었는지 나에게 알려준다.

이렇듯 편리한 기능을 우리에게 제공해준다.

 

 

(2) 백업

 

github.com

이곳을 활용하거나 아니면 다른 git hosting 서버 등을 통해서 내가 생성한 깃을 백업해둘 수 있다.

commit을 하면 새로운 버전이 생성되고, 그 커밋된 버전을 서버에 push해서 내가 제일 최근에 만들어놓은 버전을

깃허브에 올릴 수 있는 것이다.

git push

맥북에서는 터미널을 써서 깃허브에 push를 할 수 있다.

이렇게 자료가 올라간다.

 

이렇게 되면, 내 노트북이 갑자기 사라지더라도, 갑자기 배터리가 방전되어 다른 노트북을 써야할 때에도

원래 작업하던 작업물들을 가져와서 작업을 계속 진행할 수 있다.

 

깃을 CLI로 쓸 수도 있고, GUI로도 쓸 수 있는데, 보통 모두들 개발자라면 CLI를 쓴다고 한다.

알고 나면 저게 더 편할 수도 있을 거 같다는 생각이 든다. 왜냐면 빠르니까, 다운로드 안받아도 되니까 등등의 이유.

 

 

(3) 협업, 공동작업

 

이렇게 백업해둔 자료들을 다른 사람과 함께 공유하여 프로젝트를 진행시킬 수도 있다.

다른 사람의 컴퓨터에 내 깃과 같이 clone하면 되기 때문이다.

똑같은 쌍둥이를 만들어 github.com에 업로드 된 프로젝트를 같이 수정, 발전시켜나갈 수 있는 것이다.

 

그렇지만, 이러한 공동작업에서는 항상 문제가 있다.

똑같이 동시에 수정해서 커밋해서 push하면...?

다른 부분이면 합치면 되긴 하는데, 같은 부분을 고쳐놓았다면...?

 

개발자들은 그것을 conflict, 충돌이라고 부른다. 이러한 충돌을 해결하는 방법도 여러 가지가 있다.

깃은 우리에게 어느 부분이 충돌하는지, 어느 부분을 바꾸어야 하는지 친절하게 알려준다.

이것을 새롭게 알게 되면서, 기존에 구글 문서를 써본적이 있었는데,

새삼 그 작업이 얼마나 어려운 기술이며, 그것도 동시에 커서를 보면서 작업을 한다는 것이 얼마나 어려운 일인지를

알게 되었다.

 

 

2. 어떻게 써먹는가


GUI 기반 제어

CLI 기반 제어


도구로만 보자면 위의 두 가지 방법이 있다.

사용방법은 여기에서 다루기에는 엄청나게 큰 덩어리를 차지하니, 후속 글들에서 천천히 만나보고,

여기에서는 CLI 기반의 제어에 대해서 간단하게만 정리하고 넘어가고자 한다.

 

Command Line Interface

 

맥북에서는 터미널, 윈도우에서는 cmd라고 한다.

명령어만을 가지고 컴퓨터를 제어하는 것.

각종 명령어를 활용해서 깃을 생성하고 제어하고 업데이트하고 삭제한다.

 

그러기 위해서는 CLI 기반의 지식이 있어야 하는데,

그것도 포스팅 하나가 나올 정도의 덩어리이니, 다음에 포스팅을 해야겠다.

 

무튼 터미널을 가지고 깃을 요리조리 해서 잘 써먹을 수 있다는 말이었다.

 

 

 

git 다음 포스팅은 POSIX CLI에 대해서 알아보는 것으로 해야 겠다.

728x90

댓글