티스토리 뷰

Non-Programming/Computer

깃(Git) 용어 정리

글그리 2017. 9. 18. 18:41

개요


git 용어를 알아보기 전에 git이 정확히 뭔지 알아보고 넘어가자.


git이란?

git은 여러 사람들이 동시에 한 프로젝트를 개발할 때 해당 프로젝트를 관리해 주는 도구로 리눅스 개발자인 리누스 토르발즈(Linus Torvalds)가 만든 프로그램이다.

git은 단순히 소스코드를 관리해주는 도구이며, git 저장소를 서버에 저장해서 네트워크 상의 다른 사람들과 공유하려면 git server를 구축해야 한다. git server를 구축하는 것은 나름의 전문 지식이 필요하기 때문에 git server를 제공하는 여러 프로그램들이 있다.

// bonobo git, github 등


git을 사용하는 이유

여러 사람이 한 프로젝트를 개발할 때 소스코드 관리 프로그램이 왜 필요할까? git을 사용하면 다음과 같은 일이 일어나는 것을 방지할 수 있다.

  • 내가 작업한 영역을 다른사람이 구버전으로 덮어씌워서 날아가는 경우

  • 새로운 기능을 추가하면서 기존 코드를 조금 변경했는데, 기존 코드가 동작하지 않는 경우. 심지어 어디를 얼마나 수정했는지 정확히 기억하지 못할 경우

  • 등등 하나의 프로젝트를 여러사람이 수정하면서 동기화 되지 않는 경우들

git은 프로젝트의 최초 시점부터 변경사항들을 모두 기록하고 있기 때문에 어느 시점에 프로젝트가 꼬여버렸다면 동작하는 가장 최신의 코드를 다시 가지고와서 다시 시작할 수 있다.

자세한 기능들은 용어를 살펴보면서 알아보자.


git은 git bash라는 커맨드에서 동작하며 윈도우는 명령 프롬프트(cmd) 맥os는 터미널에서도 사용할 수 있다.






init : 저장소 만들기


git으로 관리하고 싶은 프로젝트가 있는 경로로 이동해서 init 명령어로 해당 프로젝트를 git 저장소로 만들 수 있다.


>git init


init 명령이 수행되면 해당 폴더 하위에 .git이라는 폴더가 생성되고 .git 폴더가 있는 디렉토리는 git 저장소가 된다. 하지만 아직 저장소만 있을 뿐 소스코드를 공유하기 위해서는 파일을 추가해야 한다.




add : 저장소에 파일 추가하기


저장소에 파일을 추가할 때 사용하는 명령어이다. 프로젝트 중에는 local에서만 필요하고 공유하지 않아도 되는 파일들이 상당히 많기 때문에 필요한 파일만 공유해야 한다.

add명령으로 저장소에 파일들을 추가할 수 있다.


>git add *.cpp
>git add *.h


하지만 다른사람과 소스코드를 공유하려면 아직 해야할 일이 남았다. 변경사항을 저장(commit)해야 하며, 그 저장된 정보를 서버에 올려야(push)해야 한다.




commit : 변경사항 확정하기


commit으로 지금까지 변경 사항을 저장할 수 있다. 다만 아직 저장 사항은 local에 있으므로 서버에 변경사항을 알려줘야 한다.


>git commit -m "initialize project"

// -m 옵션으로 해당 버전에 대한 코멘트를 남길 수 있다.




push : 변경사항 서버에 보내기


push 명령으로 local에 있는 변경사항을 서버에 올릴 수 있다.


>git push origin master




branch : 새로운 버전 만들기


git을 사용하면 얻을 수 있는 좋은 기능 중 하나이다. branch는 기존에 있던 프로젝트를 복사하여 새로운 버전을 만든다. 이렇게 만들어진 버전에서는 새로운 기능을 추가 및 테스트 할 수 있지만 기존 프로젝트에는 전혀 영향을 주지 않는다.

때문에 추가한 기능이 마음에 들지 않거나 제대로 동작하지 않으면 해당 branch를 버리면 되고, 만약 추가한 기능이 마음에 들면 기존 프로젝트와 병합할 수도 있다.


>git branch branch_one

// branch_one이라는 이름을 가진 branch를 생성

// 생성만 했을 뿐 해당 branch로 이동하려면 checkout을 해야한다.

>git branch -d branch_one

// -d 옵션으로 branch를 삭제할 수 있다.




checkout : branch 이동하기


checkout 명령으로 branch들을 이동하며 작업할 수 있다.


>git checkout branch_one

// branch_one 으로 이동

>git checkout master

// master로 이동




merge : branch 병합하기


branch에서 작업한 결과물을 기존 프로젝트에서 사용하고 싶다면 merge로 두 branch를 합칠 수 있다.(master도 branch)


>git checkout master
>git merge branch_one

// master branch로 이동해서 branch_one branch를 master와 병합한다.






마치며


이 외에도 많은 명령어들이 있지만 주로 사용하는 것들을 정리한 것이며, 실제로 git을 사용해서 소스코드를 관리하면서 사용하는 명령어들을 추가로 정리하도록 하겠다.



'Non-Programming > Computer' 카테고리의 다른 글

무선 LAN  (0) 2019.06.11
Cloud Computing (1)  (0) 2019.04.23
변복조란?  (0) 2017.02.25
프로세스 스케줄링 방식의 종류  (0) 2017.02.23
오류 검출 코드 - 해밍코드(Hamming Code)  (14) 2017.02.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함