Git

Git 사용법

배씌 2024. 12. 30. 23:42

Git 3가지 영역

  1. working directory - 작업 영역
  2. staging area - git add 한 파일들이 존재하는 곳
  3. repository - commit 들이 저장되는 곳

위 그림에서,

1. working directory 에서 A.txt, B.txt 작성

2. git add A.txt, git add B.txt 실행하여 두 파일을 staging area로 올림

3. git commit -m "Ver_1" 실행하여 커밋으로 저장

 

1. working directory에서 A.txt 파일 내용에 "Python~" 이라는 단어 추가, B.txt 파일 내용에 "Morning!" 단어 추가

2. git add B.txt 만 실행해서 B.txt 만 staging area에 올림

3. git commit -m "Ver_2" 로 두번째 커밋

 

위 작업에서 A.txt 의 파일은 수정되지 않았고, B.txt 의 파일만 수정된 모습을 볼 수 있다. 이처럼 커밋은 staging area 영역에 있는 파일들 즉, git add 된 파일들만 커밋한다는 것을 기억하자.


Commit

⭐️ Commit 주의 사항

  1. 처음으로 커밋하기 전 사용자의 이름 이메일 주소 설정
  2. 커밋 메시지 남기기 (옵션 -m)
  3. 커밋 할 파일 git add로 지정해주기

커밋 명령어 : -m

  • git commit -m "(커밋 메시지)"

 

위 커밋이 제대로 실행되지 않은 이유 : untracked files

 -> 깃에 의해 추적되지 않고 있다.

 -> 버전 관리의 대상이 아님 !

 

- 해결방법 : add / 커밋 전에 깃에다가 먼저 이 파일을 추가할 것이라 알려주는 작업


git add 

  • git status : 깃이 인식하고 있는 프로젝트 디렉토리의 현재 상태를 보여줌

현재 git에 calculator.py와 License 두 파일이 있으므로, git add calculator.py 만 실행 후 git status를 실행한 결과

 

- Changes to be committed : 커밋에 반영될 변경사항

- Changes not staged for commit : 커밋에 반영되지 않는 변경사항 (staging 이 되어있지 않음)

두 파일 모두 git add 후 git status 명령어 실행 시

  • git add . : 현재 디렉토리 내에서 변경사항이 생긴 모든 파일들을 staging area에 추가
  • git reset (파일명) : staging area 에서 파일 제거

But, 변경된 파일 내용은 그대로 working directory에 남아있음

git add calculator.py 후 git reset calculator.py

 

calculator.py 파일 내용이 변경된 상황에서, git add 했다가 git reset 한 상황

 

git status 실행 시, 파일 내용은 변경되었지만 git add 된 파일이 없으므로 Changes not staged for commit 발생

 

다시 파일 내용 원상복구 후 git status 실행

-> nothing to commit, working tree clean

  • working tree = working directory
  • clean = 이전 커밋 이후로 변경사항 X

Git 관련 메소드 정리

  • git init : 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리)생성
  • git config user.name "(이름)" : 현재 사용자의  아이디를 "(이름)"으로 설정(커밋 시 필요한 정보)
  • git config user.email "(이메일)" : 현재 사용자의 이메일 주소를 "(이메일)"로 설정(커밋 시 필요한 정보)
  • git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기
  • git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일을 staging area에 올리기
  • git add . : working directory 내의 수정사항이 있는 모든 파일을 staging area에 올리기
  • git reset [파일 이름] : staging area에 올렸던 파일 다시 내리기
  • git status : Git이 현재 인식하고 있는 프로젝트 관련 내용들 출력
  • git commit -m "커밋 메시지" : 현재 staging area에 있는 것들 커밋으로 남기기
  • git help [커맨드 이름] : 사용법이 궁금한 Git 커맨드의 공식 메뉴얼 내용 출력