Tools/Git, GitHub

[Codeit/Git] #2 Git 써보기

성중 2021. 5. 6. 16:30

repository와 commit

Git이 버전 정보를 기록하는 공간repository다!

 

프로젝트 디렉토리가 아니라 변경사항이 저장된 .git디렉토리가 repository

 

프로젝트 디렉토리의 현재 모습을 하나의 버전으로 남기는 동작 & 결과물commit이다!

 

 


이제 repository를 만들어보자!

디렉토리를 만들고 싶은 위치에 Git Bash를 열고 리눅스 명령어를 입력하자

 

 

  • mkdir a -> ‘a’라는 디렉토리를 생성
  • touch a -> ‘a’라는 파일을 생성
  • ls -> 디렉토리의 내용을 확인
  • cd a -> ‘a’ 디렉토리 안으로 이동 (‘cd .git’ -> git 디렉토리로 이동 / ‘cd ..’ -> 상위 폴더로 이동)
  • git init -> 해당 디렉토리에 git 레포지토리를 생성

 

이제 commit을 해보자!

간단한 파이썬 계산기 코드(calculator.py)를 MathTool폴더 안에 저장해준다

def add(a, b):
    return a+b

def substract(a, b):
    return a-b

Free라고 적힌 텍스트 파일(License)도 저장해주자

 

이제 첫 commit을 하기 전에 깃에 commit을 하는 사람을 명시할 필요가 있다!

$ git config user.name "joseph-106"

이름을 넣고..

$ git config user.email "sjjoseph106@gmail.com"

이메일도 설정하자

 

또한 커밋에 포함될 변경파일들을 add(미리 지정)해줘야 한다~

$ git add calculator.py

$ git add License.txt

 

커밋과 동시에 변화를 기록하는 커밋 메시지도 남겨주면 끝이다!

$ git commit -m "Create calculator.py and License"

 

 

커밋에 성공했다!

 

+++

git status -> git이 인식하는 디렉토리의 현상태를 보여준다

 

staging area에 add된 변화와 아닌 변화를 알려준다!

 

git add . -> 모든 변경을 staging area로 보낸다

 

 

git reset -> staging area에 있는 파일의 git add를 취소한다

 

물론 변경된 모습 자체는 working directory에 그대로 남는다

 

Git의 3가지 작업 영역

Git은 내부적으로 3가지 작업 영역에서 동작한다

 

1. working directory

작업을 하는 프로젝트의 디렉토리다. 지금은 MathTool디렉토리라고 볼 수 있다.

2. staging area

git add를 한 파일들이 존재하는 영역이다. 커밋을 하면 staging area에 있는 파일들만 커밋에 반영된다!

3. repository

커밋(working directory의 변경 이력들)이 저장되는 영역이다. working directory에 숨겨져 있는 .git디렉토리가 repository라고 할 수 있다

 

변경 -> add -> 저장하는 구조!
변경을 하더라도 add를 하지 않으면 커밋에 반영되지 않는다

 

쉽게 말해서 staging area가 커밋의 임시저장 같은 느낌이다!

 

Git이 파일을 보는 4가지 상태

Git으로 관리되는 파일은 크게 Untracked 상태와 Tracked 상태로 나뉜다

그리고 Tracked 상태는 Staged, Unmodified, Modified 상태로 나뉜다

 

1. Untracked 상태: 파일을 생성하고 한 번도 add를 해주지 않은 상태

2. Tracked 상태: 한 번 이상의 add로 Git에게 추적되는 상태

  • Staged 상태: 파일 수정 후에 add되어 staging area에 있는 상태
  • Unmodified 상태: 최신 커밋과 비교했을 때 바뀐 게 없는 상태
  • Modified 상태: 최신 커밋과 비교했을 때 조금이라도 바뀐 내용이 있는 상태

 

상태 전환 여부를 잘 체크하자!

 

 

본 내용은 Codeit의 'Git으로 배우는 버전 관리'를 바탕으로 작성되었습니다.

'Tools > Git, GitHub' 카테고리의 다른 글

[Codeit/Git] #6 Git 협업하기  (4) 2021.05.31
[Codeit/Git] #5 브랜치 사용하기  (4) 2021.05.29
[Codeit/Git] #4 커밋 다루기  (6) 2021.05.24
[Codeit/Git] #3 GitHub 시작하기  (6) 2021.05.13
[Codeit/Git] #1 Git 시작하기  (8) 2021.04.28