티스토리 뷰

Version Control

[Git]기본 사용법

out of coding 2014. 8. 19. 14:23

이번 프로젝트에서 git을 사용한다.

우라질나게 어렵다.


* Init

1. git init

2. git add [file]

3. git commit -m "first commit"

4. git remote add origin [URL]

5. git push -u origin master


* Init existing repository

1. git remote add origin [URL]

2. git push -u origin master


* Master branch update

1. git pull origin master:master

2. git fetch


* git checkout master

1. git pull origin master

2. git fetch

3. git checkout -b "[branch]"

  : branch를 생성

4. git branch 

  : 현재 지정된 branch가 녹색으로 표시됨


* Branch작업

1. git checkout [branch]

  : branch 선택

2. git status

  : 올릴파일 상태 확인

3. git add . OR git add -A

  : 전체 수정된 파일들을 올림

4. git commit -m "[comment]"

  : Commit 포인트를 하나 더 만들고 데이터들을 올림

5. git push

  : 데이터를 올린다.


* Master에 병합

1. git checkout [branch]

  : branch 선택

2. git rebase master

  : branch가 master 다음으로 이동함

3. git checkout master

  : HEAD가 master로 이동

4. git rabase bugfix

  : 수정된 branch와 master를 합침

5. git push

  : 실제적으로 서버에 반영


* Review요청

1. git review

2. git review "[메일주소]"


* Reset

1. git reset

2. git reset --hard


* Log

1. git log


* Reset for Commit Point

git reset --soft HEAD~[돌아갈 칸수]

git reset --hard


* 개별파일 원복

git checkout  -- <파일> : 워킹트리의 수정된 파일을 index에 있는 것으로 원복

git checkout HEAD -- <파일명> : 워킹트리의 수정된 파일을 HEAD에 있는 것으로 원복(이 경우 --는 생략가능)

git checkout FETCH_HEAD -- <파일명> : 워킹트리의 수정된 파일의 내용을 FETCH_HEAD에 있는 것으로 원복? merge?(이 경우 --는 생략가능)


* index 추가 취소

git reset -- <파일명> : 해당 파일을 index에 추가한 것을 취소(unstage). 워킹트리의 변경내용은 보존됨. (--mixed 가 default)

git reset HEAD <파일명> : 위와 동일


* commit 취소

git reset HEAD^ : 최종 커밋을 취소. 워킹트리는 보존됨. (커밋은 했으나 push하지 않은 경우 유용)

git reset HEAD~2 : 마지막 2개의 커밋을 취소. 워킹트리는 보존됨.

git reset --hard HEAD~2 : 마지막 2개의 커밋을 취소. index 및 워킹트리 모두 원복됨.

git reset --hard ORIG_HEAD : 머지한 것을 이미 커밋했을 때,  그 커밋을 취소. (잘못된 머지를 이미 커밋한 경우 유용)

git revert HEAD : HEAD에서 변경한 내역을 취소하는 새로운 커밋 발행(undo commit). (커밋을 이미 push 해버린 경우 유용)


* 워킹트리 전체 원복

git reset --hard HEAD : 워킹트리 전체를 마지막 커밋 상태로 되돌림. 마지막 커밋이후의 워킹트리와 index의 수정사항 모두 사라짐. (변경을 커밋하지 않았다면 유용)

git checkout HEAD . : ??? 워킹트리의 모든 수정된 파일의 내용을 HEAD로 원복.

git checkout -f : 변경된 파일들을 HEAD로 모두 원복(아직 커밋하지 않은 워킹트리와 index 의 수정사항 모두 사라짐. 신규추가 파일 제외)


* 참조 : reset 옵션

--soft : index 보존, 워킹트리 보존. 즉 모두 보존.

--mixed : index 취소, 워킹트리만 보존 (기본 옵션)

--hard : index 취소, 워킹트리 취소. 즉 모두 취소.


* untracked 파일 제거

git clean -f

git clean -f -d : 디렉토리까지 제거

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함