본문 바로가기

IT/git

Git 기초

저장소 만들고 설정하기

1. 기존 디렉토리를 Git으로 관리하고 싶을 때, 프로젝트의 디렉토리로 이동해서 다음 명령어 입력

cd /Project_directory [프로젝트의 디렉토리로 이동]

 

git init

 

이렇게 입력하게 되면, .git 이라는 하위 디렉토리가 만들어짐.

그리고 이 디렉토리엔 Skeleton이라는 저장소에 필요한 뼈대파일들이 들어가 있다.

하지만 이 파일들이 어떤 파일들을 관리하는 것은 아니다.

 

따라서, 파일을 관리하려면, 저장소에 파일을 추가하고 commit을 해야한다. git add 명령으로 파일을 추가하고 commit해보자.

 

git add *.java

git add README

git commit -m 'inital project version'

 

끝.

 

 

기존 저장소를 Clone하기 - 다른 프로젝트 참여하거나, Git 저장소를 복사하고 싶을 떄 git clone 명령을 사용.

Git과 Subversion과 다른 가장 큰 차이점은 서버에 있는 모든 데이터를 복사한다는 것. git clone을 실행하면 프로젝트 히스토리를 전부 받아옴.

실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다.

 

git clone [url]

 

이 명령은 "grit"이라는 directory를 만들고 그 안에 .git directory를 만든다. 그리고 저장소의 데이터를 모두 가져와서 자동으로 가장 최신 버전을 checkout해 놓는다. grit directory로 이동하면 checkout으로 생성한 파일을 볼 수 있고, 당장 하고자하는 일을 시작할 수 있음.

 근데 grit이 맘에 안들면

git clone [url] name

으로 name을 지정해서 그 안에 .git directory를 만듦.

 

 

수정하고 저장소에 저장하기

local에 저장소를 만들 수도 있고 받아 올 수도 있다. 그러면 수정해서 snapshot을 commit해보자.

working directory는 Tracked와 untracked로 나눠진다.

Tracked : 이미 스냅샷에 포함돼 있던 파일로 관리대상이다.

Untracked : 비관리대상

그런데 Tracked 파일은 또 Unmodified와 Modified 그리고 Staged로 나눠진다.

Unmodified : 수정하지 않음으로 working directory에 있는 모든 파일이 snapshot에 포함돼 있는 것은 아니고 Staging Area에 있는것도 아님. 처음 저장소를 clone하면 모든 파일이 Tracked이면서 unmodified 상태.

Modified : 수정된 파일

Staged : Commit하면 저장소에 기록되는 상태 (commit 대기중)

 

 

 

출처 http://git-scm.com/book/ko/v1/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

 

 

 

파일 추적하거나 추적을 그만두는 방법

 변경내용을  stage 하고 commit 하는 방법

  파일이나 파일 패턴을 무시하도록 git을 설정하는 방법

 

파일 상태

git status

Tracked나 Modified상태인 파일을 알려줌.

 

git add [file name]     => 이게 Staging Area에 넣는 명령어네!

그럼 file name의 file을 계속해서 추적함. 또한 수정한 것을 stage상태로 바꾸기 위해서도 사용함.

그냥 수정한 것 혹은 새로생성한 것을 저장소에 올리고자 할때는 add를 수시로 사용해 줘야하는 것 같다.

 

 

.gitignore 무시할 파일 패턴

vim .gitignore로 내부에 무시할 파일 패턴을 적어놓으면 됨.

 

git diff를 통하면 무엇이 어떻게 바뀌었는지 그래서 어떠한 상태인지 보여줌. 좋음

git diff [file name]

 

git commit하면 커밋됨.

근데 혹시나 staging area에 넣는거 귀찮을때는, git commit -a하면 저절로 추가되서 들어감.

 

삭제는 왠만하면 하지말고 stash와 branch를사용하자

 

 

 

실수를 쉽고 빠르게 만회하는 방법, 프로젝트 히스토리를 조회하고 commit을 비교하는 방법

  리모트 저장소에 push 하고 pull하는 방법

 

되돌리기

git commit --amend

 

 

 

'IT > git' 카테고리의 다른 글

Git 간단 용어 설명  (0) 2015.02.10
git merge  (0) 2015.01.14
Git remote 그리고 branch  (0) 2015.01.13
Git 기본 세팅.  (0) 2015.01.13
Git 주요개념과 설치  (0) 2015.01.13