Git & Github · · 3 min read
2장 : 깃으로 버전 관리하기
1. 깃 저장소
- 깃 초기화 하기
- 디렉토리를 하나 새로 만들고 내부를 살펴본 뒤
git init을 하면.git이라는 디렉토리가 새로 생긴다. .git: 깃을 사용하면 버전이 저장될 ‘저장소’
$ mkdir hi-git $ cd hi-git $ ls -al $ git init $ ls -al - 디렉토리를 하나 새로 만들고 내부를 살펴본 뒤
2. 버전 만들기
- 깃에서 버전이란
- 문서를 수정하고 저장할 때마다 생기는 것
- 원래 파일 이름은 그대로 유지하면서 파일에서 무엇을 변경했는지를 변경 시점마다 저장할 수 있다.
- 각 버전마다 작업했던 내용을 확인할 수 있고, 그 버전으로 rollback할 수 있다.
- 스테이지와 커밋 이해하기
- 작업트리 :: workspace
- 파일 수정, 저장 등의 작업을하는 디렉토리
- 스테이지 :: index
- 버전으로 만들 파일이 대기하는 곳
- 명령어
$ git add [파일 또는 디렉토리] - 저장소 :: local repository
- 스테이지에 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
- 명렁어
$ git commit -m "커밋 메시지 입력" - 순서
1.작업트리에서 작업을 한다.
2.작업물을 스테이지에 올린다.
3.스테이지에 있는 모든 것을 로컬 저장소에 저장한다. - 스테이징과 커밋 한꺼번에 처리하기
- 한 번이라도 커밋한 적이 있는 파일을 다시 커밋할 때 사용할 수 있다.
git commit -am "커밋 메시지"
- 현재 깃 상태 확인 :: git status
- 깃의 로그 확인 :: git log
- 여러가지 옵션을 줄 수 있다.
- 대표적인 옵션 :: –oneline, –branches, –graph
- 변경 사항 확인하기 :: git diff
- 작업 디렉토리와 저장소의 차이를 볼 수 있다.
- 작업 디렉토리와 저장소의 차이를 볼 수 있다.
- 작업트리 :: workspace
- 버전 만드는 단계마다 파일 상태 알아보기
- tracked 파일과 untracked 파일
- untracked 파일 :: 한번도 깃에서 버전 관리를 하지 않았기 때문에 수정 내역을 추적하지 않음.
- tracked 파일 :: untracked 파일이 아닌 파일
- unmodified, modified, staged 상태
- tracked 파일의 상태 확인
- unmodified : 커밋된 이후 수정되지 않은 상태
- modified : 커밋된 이후 수정된 상태
- staged : modified 상태에서
git add [파일 또는 폴더]를 실시하여 스테이지에 올려놓은 상태(커밋 직전의 상태) - 커밋을 실시하면 unmodified 상태로 돌아간다.
- tracked 파일과 untracked 파일
- .gitignore 파일로 버전 관리에서 제외하기!
- 버전 관리 중인 디렉토리 안에 버전관리를 하지 않을 특정 파일 또는 디렉토리가 있다면 .gitignore 파일을 만들어 목록을 지정할 수 있다.
- 예시
$ cat .gitignore mynote.txt # 파일을 ignore temp/ # 폴더를 ignore .swp # 확장자를 ignore - 작업 되돌리기(Rollback)
- 작업트리에서 수정한 파일 되돌리기 ::
git checkout -- [수정한 파일]- checkout으로 되돌린 내용은 다시 복구할 수 없습니다.
- 스테이징 되돌리기 ::
git reset HEAD [파일이름]- 수정된 파일을 스테이징 했을 때, 스테이징을 취소한는 방법
- 최신 커밋 되돌리기 ::
git reset HEAD^- 가장 마지막에 한 커밋을 취소하는 방법
git reset명령의 옵션git reset --soft HEAD^: 최근 커밋을 하기 전 상태로 작업 트리를 되돌립니다.git reset --mixed HEAD^: 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌린다. 기본값git reset --hard HEAD^: 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌린다. 되돌린 내용은 복구 불가능HEAD^부분에커밋해시를 넣어주면 특정 커밋 상태로 되돌아갈 수 있습니다.
- 특정 커밋으로 되돌아간다면 그 이후의 버전을 삭제할 수 있다.
- 버전 삭제하지 않고 되돌리기 ::
git revert [커밋 해쉬를 넣는다]- 나중에 사용할 것을 대비해서 커밋을 되돌리더라도 취소한 커밋을 남겨두어야 할 때가 있다.
- 이때는
git reset이 아닌git revert를 사용한다.
- 작업트리에서 수정한 파일 되돌리기 ::