상세 컨텐츠

본문 제목

Git 공부

카테고리 없음

by <감귤> 2020. 11. 24. 19:27

본문

Git

Git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 주로 SW 개발할 때 소스 코드 관리에 사용되고 공모전 하면서도 코드에 대한 변경사항을 지속적으로 추적하고 버전 관리를 할 수 있다는 것을 알고 있으면 된다. 파일의 변화를 시간에 따라 기록해 문제가 생겼을 때나 과거의 파일이 필요할 때 다시 불러올 수 있는 시스템이다.

Git은 터미널에서 CUI로 접근할 수도 있지만 소스트리나 GitHub 등을 통해 GUI를 지원하고 있다.

 

vs GitHub

GitHub는 분산 버전 관리 툴인 "Git을 사용하는 프로젝트"를 지원하는 웹호스팅 서비스이다. 위에서 언급했듯이 Git이 CUI인데 반해, GitHub는 GUI를 제공하여 편하게 사용할 수 있다.

GitHub에서 [피드, 팔로어, 위키, 소셜 네트워크 그래프] => 소셜 네트워크와 같은 기능을 제공하는 것이다. 개발자들이 어떻게 자신의 저장소의 버전을 작업하는지, 어느 포크가 최신인지를 보여준다.

GitHub는 대부분 코드를 위해 사용된다.

 

vs GitBash

window에 cmd가 있고 mac, linux에 terminal이 있는 것처럼 git에도 git bash가 있다. 명령어를 입력하여 컴퓨터에게 전달하는 것인데 주의해야 할 것은 운영체제마다 명령어가 다르다. (window의 cmd와 linux의 terminal 명령어 차이) git bash는 window에서도 linux의 명령어를 사용할 수 있도록 해주는 역할을 한다. mac 또는 linux를 사용하던 사람들은 git bash를 사용하지 않아도 괜찮지만 window 사용자들은 git bash를 사용하는 것이 좋다.

 

명령어

git init > git 소프트웨어에게 해당 디렉토리에서 작업을 진행하겠다고 선언을 한다. 눈에 보이지 않으나 숨겨진 폴더로 .git이라는 폴더가 생성되며 이 폴더 안에 버전 정보가 저장이 된다. git init을 입력했다면 프로젝트를 진행할 저장소가 준비된 것이다.

vim a.txt > 터미널에서 바로 사용가능한 텍스트 편집기이다. a라는 이름의 txt 확장자 파일을 만든 것이고 b.py라고 하면 b라는 이름의 파이썬 파일을 만들겠다는 뜻이다. 파일을 수정할 때는 i를 눌러 INSERT 모드로 변환해야 한다. INSERT 모드를 종료하기 위해서는 ESC를 누르고 :wq를 입력한다. :wq는 저장 후 편집기를 종료하겠다는 뜻이다.

git status > 내 디렉토리의 상태를 확인할 수 있다.

git add a.txt > 이전까지는 git이 새로 만든 a.txt 파일을 관리하고 있지 않았다. git에 관리를 명령한다. 그 후 상태를 확인해보면 git이 새로운 파일이 생긴 것을 인식한 것을 알 수 있다.

git config --global user.name "사용자 이름" > "사용자 이름"이 변경을 했다는 기록을 남긴다.

git config --global user.email "사용자 이메일" > "사용자 이메일"이 변경을 했다는 기록을 남긴다.

git commit > commit 메시지를 남길 수 있도록 vim이 실행된다. 기록할 메시지를 남기고 편집기를 저장 후 나오면 된다. 이제 이 시점에 체크포인트가 생긴 것이다.

git commit -m "원하는 메시지" > 위에서 한 것을 한 번에 실행할 수 있다.

git log > 기존에 설정했던 이름, 이메일, commit 시간, 메시지를 모두 확인할 수 있다.

git log -p > 많은 사람과 협업하거나 코드 내용이 많아 메시지만으로 구별하기 어려울 때 수정사항을 확인할 수 있다.

git log "버전 고유번호" > 고유번호에 해당되는 버전의 이전 버전들만 확인이 가능하다.

git diff > git에 add하기 전과 후의 코드를 비교하여 알려준다.

git diff "버전 고유번호".."버전 고유번호" > 두 버전 사이에 어느 부분이 추가/삭제되었는지 확인할 수 있다.

git reset "버전 고유번호" --hard > 이전 버전으로 돌아가는 작업이다. 로그 기록에서도 사라진다. 없어진 버전들은 삭제된 것이 아니라 따로 보관된다.

git revert "버전 고유번호" > 기존 버전을 새로운 버전으로 가져온다. commit 메시지를 입력하는 창이 떠 어떤 내용을 다시 가져왔다는 메시지를 남길 수 있다.

commit -a > add와 commit을 한 번에 실행한다.

commit -a -m "메시지" > commit -am "메시지"로 줄여서 사용할 수 있다.