git

“이 글은 https://git-scm.com/book/ko/v2 의 내용 중에서 나에게 필요한 것만 낙서 식으로 요약하고 있는 중”

git의 세가지 상태
1. committed
2. modified
3. staged

Commited는 데이터가 로컬 데이터베이스에 안전하게 저장되었다.
Modified는 수정한 파일이 있지만 아직 로컬 데이터베이스에 커밋하지 않은 상태
Staged는 지금 작업한 파일을 곧 커밋할 것이라고 표시한 상태

git의 큰 개념은 위의 3가지 이다.
즉, 모디파이에서 작업하고 스테이지로 보낸 후에 최종단계에서 커밋한다. 커밋은 최종적으로 저장되었다는 뜻이다.

위킹디렉토리는 프로젝트에서 일부분 혹은 특정 버전을 가져온 것이다. Checkout이라고 한다. 작업이 끝나면 인덱스 작업을 통해서 git으로 보낸다. 일의 흐름을 본다면 우선 체크아웃을 통해서 작업할 데이터를 갖고 온다. 작업이 끝나면 index작업을 하여 커밋할 스냅샷을 만든 후에 최종적으로 commit를 하여 영구적으로 보관한다.

git디렉토리에 있는 파일은 커밋된 상태이고 그 파일을 수정하여 index를 추가한다. 이 작업이 staged이다 그러나 수정만 하고 index작업을 하지 않았다면 이는 modified가 된다. 최근에는 index를 staging area라고 명칭이 변하고 있다.

index와 staging area는 같은 작업이라고 보면 된다.

 

clone 하기

서버에 있는 www라는 폴더를 현재 로컬 컴으로 clone를 해보자. 우선 서버에 git을 설치하고 www폴더로 이동 하여 현재 작업된 파일들을 커밋한다. 이클립스에서 ssh 프로토콜을 이용하거나 윈도우용 git을 설치한 다음에 git clone sarang@sarang.inmu.net:/home/sarang/www/.git 명령어를 사용한다. 그럼 원하는 위치에 www폴더에 작업한 내용이 모두 복사 된다. 참고로 윈도우에서 git bash를 이용하여 크론하면 “c:\user\내계정” 이 폴더로 복사가 된다.

서버측 명령어는 다음과 같다.

#cd /commit할디렉토리
#git add *
#git commit -m ‘커밋에 필요한 메시지’

이와 같은 방법으로 서버의 파일을 깃으로 커밋했다.

이제 로컬 컴으로 위에서 커밋한 파일을 갖고 오자. 윈도우용 깃배시가 설치되어 있다고 가정한다. 없다면 설치후 아래의 명령어를 입력하면 C:\User\myAccount 폴더에 저장된다.

#git clone sarang@sarang.inmu.net:/home/sarang/www

끝이다.
이제 서버의 데이터를 갖고 왔으니 워킹디렉토리에서 맘껏 요리 후 커밋하거나, staging area(index)를 해보자.

요기 까지가 가장 간단한 git의 기본 사용법이다.