Do it! 시리즈는 이전에 파이썬 책으로 처음 만났던 기억이 있습니다.
최근에 깃 사용에 대해서 전체적으로 훑어보고 싶단 생각이 들어서 책을 찾아보았는데, Do it! 깃 시리즈가 있어서 ebook으로 구입하게 되었습니다. 생활코딩 강좌를 기반으로 엮은 책으로 보이더군요. 그래서 챕터마다 참고할만한 강의 영상 QR코드가 첨부되어 있는 것도 특징 입니다.
<Do it! 스터디룸> 이라는 카페에서 Do it! 시리즈 책 스터디(라 쓰고 자습이라 읽는다) 이벤트를 진행하는 것이 있어 기왕 책 읽을 김에 스터디에도 참여하자 해서 신청하였답니다.
우선 1장, 2장에 대해서 학습한 스터디노트를 공유합니다.
1장. 깃 시작하기
01-1. 지옥에서 온 관리자, 깃
리누스 토르발스(Linux Torvalds)는 깃(Git)을 처음 세상에 소개하면서 '깃은 지옥에서 온 관리자'라고 말함
깃의 핵심 기능
- 버전 관리 (Version Control)
- 백업 (Backup)
- 협업 (Collaboration)
깃 클라이언트 프로그램의 종류
- 깃허브 데스크톱 (Github Desktop)
- 토터스깃 (TortoiseGit)
- 소스트리 (SourceTree)
- 커멘드 라인 인터페이스 (Command line Interface, CLI)
더 많은 깃 프로그램 살펴보기 https://git-scm.com/downloads/guis
01-2. 깃 설치하기
# 깃 환경 설정하기
git config --global user.name "이름"
git config --global user.email "메일주소"
01-3. 리눅스 명령 연습하기
ls 명령 옵션 모음
- -a: 숨김 파일과 디렉터리도 함께 표시
- -l: 파일이나 디렉터리의 상세 정보를 함께 표시
- -r: 파일의 정렬 순서를 거꾸로 표시
- -t: 파일의 작성 시간 순으로 (내림차순) 표시
리눅스에서 디렉터리를 나타내는 기호
- ~ 현재 접속 중인 사용자의 홈 디렉터리를 가리킴
- ./ 현재 사용자가 작업 중인 디렉터리
- ../ 현재 디렉터리의 상위 디렉터리
mkdir test # mkdir = make directory
rm -r # rm은 remove, -r 옵션은 디렉터리 안에 있는 하위 디렉터리까지 함께 삭제
vim
- ex 모드
- 입력모드
:wq # w는 저장, q는 종료
# 깃의 기본 편집기 변경하기
git config --global core.editor "notepad++"
cat 텍스트파일.txt
cat 파일1, 파일2, ..., 파일n > 새파일 # 파일 n개를 차례로 연결해서 새로운 파일을 만든다
cat 파일1 >> 파일2 # 파일1의 내용을 파일 2 끝에 연결
2장. 깃으로 버전 관리하기
02-1. 깃 저장소 만들기
git init
02-2. 버전 만들기
깃의 버전 만드는 단계
- 작업 트리 (working tree): 파일 수정, 저장 등의 작업을 하는 디렉터리
- 작업 디렉터리 (working directory) 라고도 함
- 스테이지 (stage): 버전으로 만들 파일이 대기하는 곳
- 스테이징 영역 (staging area)이라고 부르기도 함
- 저장소 (repository): 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
스테이지의 내용은 .git/index 파일에 저장되고, 저장소의 내용은 .git/HEAD 파일에 저장
git status
# On branch master: 현재 master 브랜치
# No commit yet: 아직 커밋한 파일이 없음
# nothing to commit: 현재 커밋할 파일이없음
untracked files: 깃에서 한번도 버전 관리하지 않은 파일
# 수정한 파일을 스테이징하기
git add hello.txt
git status # untracked files가 changes to be committed로 바뀜
CR 문자와 LF 문자 (합쳐서 CRLF문자라고 부름) 개행 문자 eol(end of line)
# 스테이지에 올라온 파일 커밋하기
git commit -m "message1"
git status # nothing to commit, working tree clean
git log
# 스테이지에 올라온 파일 커밋하기
git commit -m "message1"
git status # nothing to commit, working tree clean
git log
02-3. 커밋 내용 확인하기
git log # 커밋 로그
git status
git diff
02-4. 버전 만드는 단계마다 파일 상태 알아보기
# Changes not staged for commi # Tracked 파일
# untracted files # Untracked 파일
git add . # 한꺼번에 스테이지에 올리기
git add 파일명
git commit -m "message3"
git log
git log --stat # 커밋에 관련된 파일 확인
.gitignore 파일로 버전 관리에서 제외하기
Tracked 파일의 상태
- unmodified
- nothing to commit, working tree clean
- modified
- Changes not stage for commit
- staged
- Changes to be committed
# 방금 커밋한 메시지 수정하기
git commit --amend
02-5. 작업 되돌리기
checkout으로 되돌린 내용은 다시 복구할 수 없음
# 작업 트리의 변경 사항을 취소하기
git checkout -- 파일명
# 스테이징 되돌리기
git reset HEAD 파일명 # HEAD 다음에 파일 이름을 지정하지 않으면 스테이지에 있는 모든 파일을 되돌림
# 최신 커밋 돌리기
git commit -am "message4"
git reset HEAD^ # 최신 커밋 돌리기 Unstaged changes after reset
git reset HEAD^3 # 최근 3개의 커밋 취소하기
git log
git reset 명령의 옵션 살펴보기
- --soft HEAD^ 최근 커밋을 하기 전 상태로 작업 트리를 되돌림
- --mixed HEAD^ 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌림. 옵션 없이 git reset 명령 사용 시 이 옵션이 기본 작동
- --hard HEAD^ 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌림. 이 옵션으로 되돌린 내용은 복구할 수 없음
# 특정 커밋으로 되돌리기
git reset --hard 커밋해시
# 커밋 삭제하지 않고 되돌리기
git revert 커밋해시
관련 Youtube
http://bit.ly/do-it-git1 / http://bit.ly/do-it-git2
다음 시간에는 깃 브랜치와 백업에 대해 스터디 후 돌아오겠습니다 : )
반응형
'IT' 카테고리의 다른 글
[리뷰] 똑똑하게 코딩하는 법 - 파이썬 코딩의 기술 (0) | 2021.01.10 |
---|---|
[스터디노트 - 2일차] Do it! 지옥에서 온 관리자 깃&깃허브 입문 / 3장~4장 / 깃과 브랜치, 깃허브로 백업하기 (0) | 2020.11.29 |
5월 13일 - 슬랙 장애 발생 (업데이트: 조치 완료) (0) | 2020.05.13 |
LG G4 누가 입히기 (0) | 2019.07.28 |
LG G4의 무한부팅 문제 (0) | 2016.07.24 |
댓글