[Git] Git에 대해

zzincode·2024년 12월 18일

Git GitHub

목록 보기
3/17
post-thumbnail

Git

  1. 스냅샷 사용
    새로운 버전이 만들어질 때 해당 버전에서의 각 파일이 최종 상태 그대로 저장됨
    ⇒ 현 시점의 각 파일들을 불러오면 되기 때문에 진행속도가 빠름
  2. 분산 버전 관리
    모든 구성원들이 git의 상태까지 공유하기 때문에 각자 작업하다가 원하는 때에 프로젝트를 동기화하면서 협업 가능

Git의 3가지 공간

Git의 3가지 공간

파일 하나 스테이징

git add (추가할 파일명)

모든 파일 스테이징

git add .

커밋하기

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

📌 TIP) add와 commit 한꺼번에(단! 새로 추가된 파일이 없을 때 한정)

git commit -am “(커밋 메시지)”

파일 상태확인하는 명령어

git status

파일의 삭제와 변경

  • Tracked 파일 삭제
 	git rm (파일명)
  • 파일명 변경
  	git mv

commit 전에 되돌리기

git add . 후에 파일을 되돌릴 때 (staging area → working directory)

git restore --staged (파일명)

→ (파일명)만 workgin directory로 되돌림(파일이 수정되어 저장만 되어진 상태)

git restore (파일명)

→ (파일명)을 working directory에서도 제거 (수정된 사항도 삭제되어 repository 상태로 되돌리는 것

commit 후에 되돌리기

reset 세 가지 옵션

  • --soft: repository → staging area
  • --mixed (default): repository → working directory
  • --hard: 수정사항 완전히 삭제

🧑‍🔧 Git의 HEAD

: 현재 속한 브랜치의 가장 최신 커밋

checkout으로 HEAD앞뒤 이동

git checkout HEAD^

^ 또는 ~ 갯수만큼 이전으로 이동 ( 커밋해시로 이동도 가능)

git checkout -

이전의 앞으로 이동을 한 단계 되돌리기

💡 이전으로 checkout된 상태의 해당 위치에 HEAD 존재
HEAD는 현재 속한 브랜치의 가장 최신커밋을 나타내는데 최신커밋에 위치해 있지 않음
⇒ 결론 : 익명의 브랜치에 위치해있음을 나타냄

❗️ 기존 브랜치로 돌아오는 방법 : switch 활용

- 익명의 브랜치에서 새로운 브랜치를 만들기도 가능

HEAD 사용하여 reset

git reset HEAD(^원하는 단계)

fetch와 pull의 차이

  • fetch: 원격 저장소의 최신 커밋을 로컬로 가져오기만 함
  • pull: 원격 저장소의 최신 커밋을 로컬로 가져와 merge 또는 rebase

원격의 새 브랜치 확인

  • git checkout origin/(브랜치명)
  • git switch -t origin/(브랜치명)

0개의 댓글