02-1. 깃 저장소 만들기
깃 초기화하기 - git init
1. hello-git 디렉터리 만들기
$ mkdir hello-git
$ cd hello-git
2. hello-git 내부 살펴보기
$ ls-la
3. 깃을 사용할수 있도록 디렉터리 초기화 : Initialized empty Git repository..
$ git init
4. 내부 살펴보기 : .git 생성(버전이 저장될 저장소)
$ ls-la
+
보여지지않는 디렉터리 .git
window : [보기] + 숨긴항목
mac : [Shift] + [Command] + [ . ]
02-2. 깃 저장소 만들기
깃에서 버전이란
문서를 수정, 저장할 때 마다 생기는 것
스테이지와 커밋 이해하기
작업트리 (working tree) : 파일 수정, 저장 등의 작업을 하는 디렉터리 (hello-git)
스테이지 (stage) : 버전으로 만들 파일이 대기하는 곳
저장소 (repository) : 스테이지에 대기하던 파일들을 버전으로 만들어 저장하는 곳
작업 트리에서 빔으로 문서 수정하기
1. 터미널 창에서 hello-git디렉터리로 이동
$ git status
2. git의 상태메시지
- On branch master : 현재 master브랜치에 있음
- No commits yet : 아직 commit한 파일이 없음
- nothing to commit : 현재 commit할 파일이 없음
3. hello.txt파일 생성
$ vim hello.txt
4. [ I ] or [ A ] :입력모드
파일 내용 입력
[Esc] : ex모드로 돌아가기
:wq +[ENTER] : 수정한 문서 저장, 편집기 종료
5. 터미널에서 확인하기
$ la -la
6. 깃 상태확인 : hello.txt라는 untracked files(한번도 버전 관리를 하지않은 파일) 확인
$ git status
수정한 파일을 스테이징하기 - git add
스테이징 : 깃에게 버전 만들 준비를 하라고 알려주는 것
1. git add
$ git add hello.txt
2. 깃 상태 확인
git status
3. untracked files -> changes to be committed
new file: hello.txt '새파일 hello.txt를 커밋할 것이다'
+
스테이지에 올릴 때 경고 메시지가 나타나는 이유
윈도우와 리눅스의 줄바꿈 문자가 달라서
'warining: LF will be replaced by CRLF in hello.txt'
메시지의 뜻만 이해하기
스테이지에 올라온 파일 커밋하기 - git commit
1. git commit _ -m : 커밋과 함께 저장할 메시지
$ git commit -m "message1"
2. file changed, 1 insertion 파일내용 추가 확인
3. 현재 깃 상태
$ git status
4. nothing to commit / working tree clean
5. 버전 확인
$ git log
6. 커밋한 버전에 대한 설명 _ 사람, 시간, 메시지
스테이징과 커밋 한번에 처리하기 - git commit -am
한번이라도 커밋한 파일을 다시 커밋할 때만 사용가능
1. 빔에서 hello.txt파일 열기
$ vim hello.txt
2. [ I ] : 입력모드로 변경
파일 수정
[Esc] : 문서 저장
:wq : 편집기 종료
3. 스테이징과 커밋 한번에 처리(이전 수정, 커밋 내역이 있어야함)
$ git commit -am "message2"
4. 버전 정보 확인
$ git log
5. 정보확인
02-3. 커밋 내용 확인하기
커밋기록 자세히 살펴보기 - git log
commit hash (git hash) : commit 옆 영문과 숫자로 된 긴 문자열, git을 구별하는 아이디
(HEAD -> master) : 가장 최신버전 표시
Author : 작성자
Date : 작성일자
작성시 메시지
변경사항 확인하기 - git diff
작업트리에 있는 파일과 스테이지의 파일을 비교, 스테이지의 파일과 저장소 최신 커밋을 비교하여 검토
1. 현재 저장소
2. txt 파일 수정하기 _ [ I ] or [ A ], [Esc], :wq, [ENTER]
$ vim hello.txt
3. hello.txt 파일 수정상태, 스테이징x
$ git status
4. 파일 비교하기
$ git diff
5. -abc : abc가 삭제되었다 / +abc : abc가 추가되었다
수정내용 버리기 : git checkout
02-4. 버전 만드는 단계마다 파일 상태 알아보기
tracked파일과 untracked파일
1. hello.txt 파일 수정
vim hello.txt
2. 새로운 파일 생성
vim hello2.txt
3. hello2.txt 파일 수정
4. hello.txt와 hello2.txt 상태 확인
$ git status
5. hello.txt : tracked 파일 _ modified:수정됨, 파일의 수정여부 계속 추적
hello2.txt : untracked 파일 _ 한번도 버전관리를 하지 않은 파일
6. 스테이지에 올리기
$ git add hello.txt
$ git add hello2.txt
7. hello.txt : tracked 파일
hello2.txt : tracked 파일
8. 커밋하기 ( Q. 둘중 하나만 커밋하려면??)
$ git commit -m "message3"
$ git log
9. message3 메시지 확인 가능
10. 커밋에 관련된 파일 함께 보기
$ git log --stat
11. 가장 최근부터 순서대로 보여짐
[ENTER] : 다음 로그화면
[Q] : 로그화면 나와서 깃 명령 입력 가능
+
.gitignore파일로 버전 관리에서 제외하기
버전관리를 하지않을 디렉터리 이름, 파일 확장자 입력
주로 개인 메모파일, 자동생성 swp파일, 백업 파일 등
unmodified, modified, staged 상태
1. 현재 디렉터리 상태
$ ls -la
2. 깃, 파일의 상태
$ git status
3. working tree clean = modified = 수정되지않은 상태
4. hello2.txt 파일 수정
$ vim hello2.txt
5. Changes not stage for commit = modified = 수정만 된 상태
6. Changes to be committed = staged = 커밋 직전 단계
7. 커밋 후 다시 unmodified 상태
+
방금 커밋한 메시지 수정하기
$ git commit --amend
기존 메시지가 나타남
[ I ] : 수정
02-5. 작업 되돌리기
작업트리에서 수정한 파일 되돌리기 - git checkout
1. 소스 수정
2. use "git checkout --<file>.. "to discard changes in working directory
3. git checkout
$ git checkout --hello.txt
4. 수정 전 내용 확인가능
스테이징 되돌리기 - git reset HEAD 파일 이름
1. 소스 수정
$ vim hello2.txt
2. 스테이지 올리기
$ git add hello2.txt
$ git status
3. use "git reset HEAD <file>.." to unstage
4. git reset
$ git reset HEAD hello2.txt
5. unstaged changes after reset
6. Changes not staged for commit 상태
최신 커밋 되돌리기 - git reset HEAD^
1. hello2.txt 수정
$ vim hello2.txt
2. 스테이징, 커밋 실행
$ git commit -am "message4"
3. 커밋 상태 확인
$ git log
4. 최신 커밋 되돌리기
$ git reset HEAD^
5. unstaged changes after reset:
6. git log로 커밋 취소 확인
+
git reset 명령의 옵션 살펴보기
--soft HEAD^ : 최근 커밋 전 상태로 작업트리를 되돌림
--mixed HEAD^ : 최근 커밋, 스테이징 전 상태로 작업트리를 되돌림, 옵션이 없을 경우 기본 실행
--hard HEAD^ : 최근 커밋, 스테이징, 파일 수정 전 상태로 작업트리를 되돌림, 복구 불가
특정 커밋으로 되돌리기 - git reset 커밋 해시
1. rev.txt 생성
$ vim rev.txt
2. 메시지와 함께 커밋
$ git add rev.txt
$ git commit -m "R1"
3. rev.txt 수정, 재 커밋
$ vim rev.txt
$ git commit -a -m "R2"
4. rev.txt 수정, 재 커밋
$ vim rev.txt
$ git commit -a -m "R3"
5. rev.txt 수정, 재 커밋
$ vim rev.txt
$ git commit -a -m "R4"
6. R2 커밋의 커밋해지 복사
7. 붙여넣기
$ git reset --hard 복사한 커밋해시
8. R2가 가장 최신 커밋이 됨
9. 메시지와 내용 모두 수정됨
커밋 삭제하지않고 되돌리기 - git revert
취소한 커밋 남겨두기
1. rev.txt 수정
$ vim rev.txt
2. R5 메시지와 커밋
$ git commit -am "R5"
3. git log로 버전확인
4. revert할 R5커밋 해시 복사
5. 붙여넣기
$ git revert 복사한 R5 커밋해시
6. 추가 내용 저장
7. git log로 확인하기
8. 변경된 R5 확인
9. 문서 반영 확인
$ cat rev.txt
10. 변경된 rev.txt 확인
test)
git config u______ : 깃 환경에서 이름을 'easys'로 지정
git config u______ : 깃 환경에서 메일을 'doit@easys.co.kr'로 지정
git i______ : 현재 위치에 지역 저장소 생성
git s______ : 깃 상태 확인
git a______ : ch01.txt 파일을 스테이지에 올림
git co_____ : 'ch01' 커밋 메시지를 붙여 커밋
git co_____ : 메시지 'ch02'를 붙여 스테이징, 커밋 동시에
git l______ : 커밋 정보 확인
git d______ : 최근 버전과 작업 폴더의 수정파일의 차이를 보여줌
git ch_____ : 지정한 커밋해시로 이동
git r______ : 가장 최근 커밋 취소
git r______ : 지정한 커밋해시로 이동, 이후 커밋 취소
git re_____ : 지정한 커밋해시의 변경이력 취소
'GIT > [do it] 깃허브 입문 (완)' 카테고리의 다른 글
[ Do it ] 깃&깃허브 입문 _06. 깃허브에서 개발자와 소통하기 (0) | 2021.05.06 |
---|---|
[ Do it ] 깃&깃허브 입문 _05. 깃허브로 협업하기 (0) | 2021.04.16 |
[ Do it ] 깃&깃허브 입문 _04. 깃허브로 백업하기 (0) | 2021.03.30 |
[ Do it ] 깃&깃허브 입문 _03. 깃과 브랜치 (0) | 2021.03.25 |
[ Do it ] 깃&깃허브 입문 _01. 깃 시작하기 (0) | 2021.03.23 |