'git'에 해당되는 글 3건

  1. 2010.06.10 [git] 영역간 차이점 알아보기
  2. 2010.06.01 [git] 작업의 취소 (9)
  3. 2010.05.20 Git 관련 자료

영역 구분
  • 워킹 트리 working tree (workspace)
  • 인덱스 index (planned tree, staging area)
  • 로컬 브랜치(현재 브랜치) local branch[local repository]
  • 리모트 트래킹 브랜치 remote tracking branch[local repository] : 리모트 브랜치를 로컬에서 참조가능(fetch 명령으로 갱신)
  • 리모트 브랜치 remote branch[remote repository]

1. 워킹 트리 → 인덱스
git status : 워킹트리에서 아직 인덱스에 add되지 않은 파일내역
git diff : 워킹 트리와 인덱스간 소스내용 차이점
git diff <파일> : 해당 파일에 대한 워킹트리와 인덱스간 소스내용 차이점

2. 인덱스 → 로컬 브랜치
git status : 인덱스에서 아직 commit되지 않은 파일내역
git diff --cached : 인덱스와 로컬브랜치(HEAD) 간의 차이점. "commit" 명령을 수행할 경우 반영되는 내용들

3. 워킹 트리 → 로컬 브랜치
git diff HEAD : 워킹 트리와 로컬 브랜치(HEAD)의 소스내용 차이. 마지막 commit 이후 변경사항.
                     "commit -a" 명령을 수행할 경우 반영되는 내용들
git diff HEAD -- <파일> : 해당 파일에 대한 워킹트리와 마지막 commit 이후의 소스내용 차이점

4. 워킹 트리 → 리모트 브랜치
git diff FETCH_HEAD : 워킹 트리와 리모트 브랜치(FETCH_HEAD)의 소스내용 차이점
git diff FETCH_HEAD -- <파일> : 해당 파일에 대한 워킹 트리와 리모트 브랜치 소스내용 차이점

5. 로컬 브랜치 → 리모트 브랜치 : Outgoing Changes
git log FETCH_HEAD.. : 로컬 브랜치에서 리모트 브랜치에 반영할 변경내역(커밋기록)
git diff FETCH_HEAD... : 로컬 브랜치에서 리모트 브랜치에 반영할 소스 변경내용 

6. 리모트 브랜치 → 로컬 브랜치 : Incoming Changes
git log ..FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 변경내역(커밋기록)
git diff ...FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 소스 변경내용


* 참고 
git fetch : 기본 리모트 트래킹 저장소의 브랜치들을 업데이트
git fetch <리모트트래킹저장소> <리모트브랜치> : 해당 리모트트래킹저장소의 리모트브랜치만 업데이트
git remote update : 트래킹 중인 모든 저장소들 업데이트
git pull : fetch 포함. 즉 FETCH_HEAD 업데이트 됨.

git log -- <파일> : 해당 파일의 커밋 기록 보기
git log -p : diff 포함해서 보기
git log --stat : 통계형식으로 보기
git log -n : 최근 n개의 기록만 보기
git log <since>..<until> : 두 커밋 사이의 기록만 보기(둘 중 하나 생략시 HEAD)

git diff --ignore-space-change : 라인 끝 공백 비교안함
git diff --stat : 통계형식으로 차이점 보기
git diff -- <파일> : 해당 파일에 대한 차이점 보기

git whatchanged : git log와 유사함
git show <object> : 현재 브랜치상의 주어진 커밋에 대한 기본 정보 및 소스변경 내용(diff). obj 생략시 HEAD. log보다 좀더 상세함
git reflog : 로컬 저장소 내의 브랜치들이 시간에 따라 어떻게 변경되어 왔는지 보여줌
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요

개별파일 원복
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 : 디렉토리까지 제거

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요

  1. joony77 2012.04.05 16:37 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다.~!

  2. BlogIcon egoing 2012.06.06 13:54 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 에코지오님.
    git 수업을 만들고 있는데 에코지오님 글에서 큰 도움을 받았습니다.
    고맙습니다. :)

    http://opentutorials.org/course/303/2325

  3. BlogIcon fromjklee 2013.04.17 10:15 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다~~ 좋은 정보 담아 갑니다!

  4. BlogIcon 우진샘 2013.09.16 16:27 신고  댓글주소  수정/삭제  댓글쓰기

    보기 좋게 정리 잘 해 주셔서 감사합니다.
    혹시 원본글에 대한 링크와 함께 본문 내용 옮겨 가도 될까요?
    링크만 걸어놓은 경우 링크된 본문이 사라지는 경우도 종종 있고 검색이 쉽지가 않아서요.
    허락 받으면 가져가고 싶습니다. ^^

  5. ijooswk 2014.01.08 09:40 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다. 잘봤습니다.

  6. 2014.08.05 20:37  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  7. 마크 2015.03.26 00:22 신고  댓글주소  수정/삭제  댓글쓰기

    도움받고 갑니다. 감사합니다.

  8. BlogIcon 똥광이 2015.04.17 11:53 신고  댓글주소  수정/삭제  댓글쓰기

    정말 잘 정리되있네요.
    도움 많이 받았습니다~
    출처남기고 펌 좀 하겠습니다!!
    감사합니다! :)

    http://blog.naver.com/silver889

  9. BlogIcon kkd927 2017.06.09 15:40 신고  댓글주소  수정/삭제  댓글쓰기

    정말 잘 정리되있네요.
    도움 많이 받았습니다~
    출처남기고 펌 좀 하겠습니다!!
    감사합니다! :)

Git 관련 자료

분류없음 2010.05.20 00:33


Git 공식 문서 페이지
http://git-scm.com/documentation

Git 사용자 설명서(한글 번역)
http://namhyung.springnote.com/pages/3132772

GIT 사용법(Pro GIT 책 내용 정리)

Git - SVN 비교(영문)
http://git-scm.com/course/svn.html

Eclipse EGit 플러그인 사용가이드
http://wiki.eclipse.org/EGit/User_Guide

Tortoise Git - Git Windows GUI
http://code.google.com/p/tortoisegit/

Git Extensions - Git Windows GUI
http://code.google.com/p/gitextensions/

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오
TAG git, 어렵다

댓글을 달아 주세요



티스토리 툴바