181127 지옥에서 온 git 정리 (1)

2018-11-27

Git

  • Backup(저장)
  • Recovery(이전 상태로 복구)
  • Collaboration(다른 사람과 협업)

CVS, SVN, GIT 등 다양한 version control system 제품이 있다.

git은 매우 복잡하고 어렵다

-> 기능이 더해지면서 점점 복잡해졌다.

? 이렇게 어려운데도 git을 사용하는 이유는 무엇일까?

복잡하지 않은 코드+복잡한 GIT = 오히려 방해가 될 수도 있다. (드롭박스나 구글 드라이브를 이용하는 것이 나을수도 있다.)

아주 복잡한 코드(몇천만줄…?)+상대적으로 덜 복잡한 GIT = 상대적으로 복잡도가 낮아질 수 있다.

자신이 어떤 상황인지에 따라서 필요한 것을 잘 선택하라.

Codeonweb

https://www.codeonweb.com/#/

다양한 언어의 실습을 웹에서 해 볼 수 있다.

git init

프로젝트를 진행할 폴더에 들어가서

git init

을 입력하면 .git/ 라는 git 레포지토리를 생성한다.

git 버전관리를 사용하기 위해서는 다양한 정보들이 생성되는데, 이 정보들이 .git/폴더에 저장된다.

git add

git status

디렉토리 내부에 파일이 생성되어도 git에 관리하라는 명령을 주지 않으면 그 파일을 관리하지 않는다.

git add 파일이름

새로 추가한 파일은 git add명령어로 파일을 추적하도록 설정해야 한다.

임시로 생성되는 파일은 버전 관리에서 제외해야 하므로, 관리해야 하는 파일이 무엇인지 git에게 정확하게 알려주는 방법이다.

? 왜 커밋하기 전에 add해야 하는가?

커밋 하나는 하나의 작업을 담는 것이 이상적이다

아주 많은 작업을 담은 커밋 하나를 만들어야 하는 경우(커밋 시기를 놓친 경우), add하지 않은 파일은 커밋되지 않도록 할 수 있다. (선택적으로 커밋)

git commit

모든 변화를 버전 version 이라고 하지 않는다.

version: 의미 있는 변화. 어떤 단위(작업)가 완결된 상태.

git config --global user.name 이름
git config --global user.email 이메일

git을 처음 설치했을 때, 위와 같이 설정해서 변경사항을 커밋한 사람이 누구인지 확실히 한다.

git commit

변경사항의 이유나 내용을 적는 것이 commit 메시지이다.

git log

커밋 내역을 볼 수 있다.

? 파일이 변경된 경우
git add 변경된 파일 

을 수행한 후 commit해야 한다.

git stage area

cp 원본파일 복사파일

을 통해 파일을 복사할 수 있다.

stage area

add하는 경우 stage에 추가된다.

commit하는 경우 stage 위에 있는 파일만 commit된다.

커밋된 결과는 repository에 저장된다.