본문 바로가기
IT

[스터디노트 - 1일차] Do it! 지옥에서 온 관리자 깃&깃허브 입문 / 1장~2장 / 깃 기초

by 이세진 2020. 11. 23.
반응형

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-git1http://bit.ly/do-it-git2

 

 

 

다음 시간에는 깃 브랜치와 백업에 대해 스터디 후 돌아오겠습니다 : )

반응형

댓글0