관리 메뉴

공부기록용

GIT(기본 명령어) 본문

💡깨달음💡/GIT

GIT(기본 명령어)

과부하가즈아 2023. 6. 8. 15:42

git init - 저장소 만들기

로컬 Git 저장소를 설정합니다.

gt init

mkdir, cd, touch, echo 명령어

  • mkdir: 디렉토리 생성
  • cd: 디렉토리로 이동
  • touch: 빈 파일 생성
  • echo "[글자]" >> [파일]: 파일에 글자 추가
mkdir sample
cd sample
touch red orange
echo "빨강" >> red
echo "주황" >> orange
git init

main branch

기본 브랜치 설정이 master인 경우 main 대신 master로 설정됩니다. 최근 master 대신 main을 쓰는 추세고 master로 설정되었다면 git branch -M main 명령어로 브랜치를 main으로 변경해주세요.

git status - 현재 상태 확인

현재 작업 중인 파일의 상태를 확인합니다.

git status

git status # gst

gst 는 뭔가요?
명령어 뒤에 주석으로 써있는 부분은 alias로 oh-my-zsh을 설치하면 사용할 수 있는 별칭입니다.git status대신 gst만 입력해도 동일하게 동작합니다.

git add - 현재 상태 추적

파일의 변경사항을 인덱스index에 추가합니다. Git은 커밋하기 전, 인덱스에 먼저 커밋할 파일을 추가합니다.

git add -A # gaa
git status # gst
  1. -A 옵션을 이용하여 전체 파일(orange, red)을 인덱스에 추가
  2. 상태 확인

git commit - 현재 상태 저장

인덱스에 추가된 변경 사항을 이력에 추가합니다.

git commit [-m <msg>]

git commit -m "v1 commit" # gc -m "v1 commit"

> -m 옵션을 이용하여 첫 번째 이력에 대한 메시지 작성


git log - 이력 확인

git log는 다양한 옵션을 조합하여 원하는 형태의 로그를 출력할 수 있는 강력한 기능입니다. 이번 실습에선, 추가 옵션 없이 git log만 사용합니다.

git log [<options>] [<revision range>] [[--] <path>…​]

git reset - 이전 상태로 (이력 제거)

특정 커밋까지 이력을 초기화합니다. 바로 전, 또는 n번 전까지 작업했던 내용을 취소할 수 있습니다. 열심히 작업했는데, 전혀 엉뚱한 걸 했거나 작업한 내용이 필요 없어질 때 사용합니다. ⚠️ 이력이 지워지기 때문에 주의해야 합니다. 

 

git reset은 다양한 옵션이 존재하는데 여기선 --hard 옵션을 사용합니다.

git reset [<commit>] [--soft | --mixed [-N] | --hard | --merge | --keep]

git log
git reset {v2 커밋 아이디} --hard # 커밋 아이디 예) 27a00b7 (앞에 7자 정도 복사)
  1. git log로 2번 커밋 ID 조회
  2. 2번 커밋까지 이력 초기화

git revert - 이전 상태로 (이력 유지)

특정 커밋을 취소하는 새로운 커밋을 만듭니다. 여기선 3번 커밋을 취소하는 새로운 커밋을 생성하여 마치 2번 커밋 상태로 돌아간 것 같지만 기존 이력을 유지하는 모습을 확인합니다.

 

일반적으로 특정 버전을 배포했는데 문제가 생기면 문제가 생긴 커밋을 revert합니다. (빠른 조치/롤백) 다시 원복한 상태로 작업을 이어서 하고 해당 문제를 수정하면 다시 커밋하는 방식을 사용합니다.

git revert <commit>…​

git log
git revert {v3 커밋 아이디} # 커밋 아이디 예) 306b947 (앞에 7자 정도 복사)
git log
  1. git reset 명령어로 3번 커밋이 지워졌다면 이전 실습을 통해 다시 커밋 추가
  2. git log로 3번 커밋 ID 조회
  3. 3번 커밋 취소

참고 : 기본 명령어 | Git / GitHub 안내서 (subicura.com)

'💡깨달음💡 > GIT' 카테고리의 다른 글

GIT(초기 설정과 상태 관리 및 commit)  (0) 2023.07.24
GIT(branch)  (0) 2023.06.08
GIT(설치, 환경설정)  (0) 2023.06.08
GIT(개념_03)  (0) 2023.06.08
GIT(개념_02)  (0) 2023.06.08
Comments