저장소 만들고 설정하기
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 대기중)
파일 추적하거나 추적을 그만두는 방법
변경내용을 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 |