02-1 깃 저장소 만들기
저장소를 만들고 싶은 디렉터리로 이동해서 깃을 초기화 -> 해당 디렉터리에 있는 파일들을 버전관리 O
깃 초기화 하기 - git init
1. 깃 저장소를 만들 디렉터리 생성
홈 디렉터리에 hello-git이라는 디렉터리를 만들고 cd명령을 사용해 해당 디렉터리로 이동
$ mkdir hello-git $ cd hello-git |
2. 깃을 사용할 수 있도록 디렉터리 초기화
$ git init |
"Initialized empty Git repository ..." -> 해당 디렉터리에서 깃 사용 가능
디렉터리 안의 내용을 확인해 보면, '.git'라는 디렉터리가 생성되어있음 ($ ls -la 이용)
'.git' : 깃을 사용하면서 버전이 저장될 저장소(repository)
cf) .git 디렉터리는 감춰져 있음 (hello-git 디렉터리를 열었을 때 나타나지 않음)
- 윈도우에서는 [보기]탭에서 '숨긴 항목'을 체크하면 확인 가능
02-2 버전만들기
버전 - 프로그램 개발에서 수정내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별하는 것
깃에서 버전이란
- 문서를 수정하고 저장할 때 마다 생기는 것
버전관리 시스템(ex 깃) : 만든 시간과 수정내용까지 기록할 수 있음, 변경 시점마다 저장가능
스테이징와 커밋 이해하기
작업트리(Working tree = Working directory)
- 파일 수정, 저장 등의 작업을 하는 디렉터리 (우리 눈에 보이는 디렉터리)
스테이지 (Stage = staging area)
- 버전으로 만들 파일이 대기하는 곳
- 작업트리에서 수정한 파일 중 버전으로 만들 파일만 스테이지로 넘겨주기
저장소 (Repository)
- 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
작업 트리에서 빔으로 문서 수정하기
1. hello-git 디렉터리까지 이동후 깃 상태 확인
$ git status(깃 상태 확인)을 하면 위 그림처럼 3메시지가 나타난다.
(1) On branch master : 현재 master branch에 있음
(2) No commits yet : 아직 커밋한 파일이 없음
(3) nothing to commit : 현재 커밋할 파일이 없음
2. hello-git 디렉터리에 새로운 파일 만들기
$ vim hello.txt |
3. vim 화면이 나타나면 1강에서 배운대로 입력 후 종료
4. 깃 상태를 확인해보면 hello.txt라는 untracked files가 있다는 메시지가 나타난다.
- untracked files: 한번도 버전관리하지 않은 파일
수정한 파일을 스테이징하기 - git add
1. 스테이징(staging) : 스테이지에 작업트리에서 만들거나 수정한 파일 추가
$ git add hello. txt |
2. 깃상태를 확인하면 untracked files: 라는 문구가 changes to be committed 로 바뀜 그리고 new file:이라는 수식어가 추가로 나타나는데 이는 "새 파일 hello.txt를 앞으로 커밋할 것이다"라는 뜻
스테이지에 올라온 파일 커밋하기 - git commit
1. 커밋(commit) : 버전을 만듦
커밋과 함께 저장할 메시지를 적을 수 있는데 메시지에는 그 버전에 어떤 변경 사항이 있었는지 확인하는 용도
$ git commit -m "message1" |
2. 버전이 제대로 만들어졋는지 확인
$ git log |
방금 커밋한 버전에 대한 설명(커밋을 만든 사람, 만든 시간, 커밋메시지) 이 나타난다.
스테이징과 커밋 한꺼번에 처리하기 - git commit -am
1. vim에서 아까 작성한 hello.txt파일을 열어 파일의 안의 내용을 수정
2. 스테이징과 커밋 한꺼번에 처리
$ git commit -am "message2" |
단, 한번 커밋한 파일이어야 한다.
02-3 커밋 내용 확인하기
커밋 기록 자세히 살펴보기 - git log
지금까지 만든 버전이 화면에 나타나고, 각 버전마다 설명도 함께 나타남
변경 사항 확인하기 -git diff
- 최신버전의 파일과 수정한 파일이 어떻게 다른지 확인
02-4 버전 만드는 단계마다 파일 상태 알아보기
tracked file 과 untracked file
cf) 커밋에 관련된 파일 까지 살펴보려면 $git log --stat 입력
unmodified, modified, staged 상태
cf) 방금 커밋한 메시지 수정하기 : $git commit --amend 를 입력하기 -> vim이 켜지면 수정후 저장하면서 종료
02-5 작업 되돌리기
작업트리에서 수정한 파일 되돌리기 - git checkout
-파일을 수정한 뒤 소스가 정상적으로 동작하지 않는 등의 이유로 수정한 내용을 취소하고 가장 최신 버전 상태로 되돌리기
$ git checkout -- hello.txt |
스테이징 되돌리기 - git reset HEAD 파일이름
-수정된 파일을 스테이징 햇을때, 스테이징 취소
$ git reset HEAD hello.txt |
최신 커밋 되돌리기 - git reset HEAD^
-수정된 파일을 스테이징하고 커밋까지 햇을 때, 가장 마지막에 한 커밋 취소
$ git reset HEAD^ |
- 커밋에 취소되고 스테이지에서도 내려감
특정 커밋으로 되돌리기 -git reset 커밋해시
- 특정 버전으로 되돌린 다음 그 이후 버전을 삭제
- git reset A 일때, A커밋을 삭제하는 것이 아니라 A 커밋 이후에 만들었던 커밋을 삭제하고 A 커밋으로 이동
- git log 를 이용해 커밋해시 복사
$ git reset --hard 복사한커밋해시 |
커밋 삭제하지 않고 되돌리기 - git revert
-나중에 사용할 것을 대비해 커밋을 되돌리더라도 취소한 커밋을 남겨두어야 할때
$ git revert 복사한커밋해시 |
'Computer Science > git&github' 카테고리의 다른 글
개발자가 오픈소스 읽는 방법 (0) | 2022.02.16 |
---|---|
기본 Git&Github 협업과정 (0) | 2022.02.16 |
[git & github] 깃허브 (0) | 2020.05.18 |
[git & github] 브랜치 (0) | 2020.05.17 |
[git & github] 깃 시작하기 (0) | 2020.05.13 |