Git이란?
소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템
내 컴퓨터에 설치되는, 형상관리를 해주는 프로그램
- 소스코드가 변경된 이력을 쉽게 확인할 수 있다.
- 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다.
- 내가 올리려는 파일이 누군가 편집한 내용과 충돌한다면, 서버에 업로드할 때 경고 메시지가 발생한다.
Git 설치
https://git-scm.ccom/downloads
저장소
저장소(Git repository)란 말 그대로 파일이나 폴더를 저장해두는 곳!
Git 저장소에서는 파일이 변경이력 별로 구분되어 저장된다.
비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경사항 별로 구분해서 저장이 가능하다.
평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때 원격 저장소에 업로드하면 된다.
=> 물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져오는 것도 가능하다.
저장소의 종류
- 로컬 저장소 : 내 PC에 파일이 저장되는 개인 전용 저장소, git 관련 파일이 생성되어 있는 특정 폴더
- 원격 저장소 : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소 (Github, Backlog )
로컬 저장소 생성
폴더 생성 -> 폴더로 이동 -> 우클릭 -> git bash로 열기 -> git init
.git 폴더 생성됐는지 확인
=> 로컬 저장소를 삭제하고 싶으면 .git 폴더를 삭제하면 됨
버전 관리
버전 관리할 파일 추가
git add \[파일 이름\]
git add .
: 모든 파일 추가할 때
- 파일은 스테이징 영역으로 추가된다.
- git으로 공유하면 안 되는 파일들(.env 등)은 .gitignore 파일에 목록을 작성하여 관리한다.
add를 취소하고 싶을 때
git rm --cached \[파일 이름\]
버전 저장
그냥 커밋할 때
git commit -m "커밋 메시지"
템플릿으로 커밋할 때
git config --global commit.template .gitmessage.txt
git commit
=> 버전이 저장된 상태에서 바뀐 게 없기 때문에 status에서 아무것도 뜨지 않음
파일 수정 후
커밋 내역 확인
git log
커밋 만들어서 확인해보기
commit 옆 => 커밋 해시
git log -p
: 커밋의 diff 내용(수정 내역)까지 보여줌
git log --all
: 모든 브랜치를 보여줌
git log --oneline
: 커밋 로그를 한 문장으로 보여줌
수정하기
1) 스테이징 되돌리기
git rm --cached [파일 이름]
2) 커밋 내용 수정하기
가장 최근의 커밋 내역을 덮어쓰기
git commit -amend -m "메시지"
3) 이전 버전으로 되돌리기
: 이전 버전 파일 확인만 할 때
- 어떻게 수정을 했었는지 돌아가서 확인만 하고 싶을 때
git checkout [커밋 해시]
: 다시 최신 버전으로 돌리기
git log --all
해서 해시값 확인 후 checkout
HEAD => 내가 현재 위치한 버전
💡 되돌리기 할 때 주의
작업을 저장하지 않은 상태에서 다른 버전으로 왔다갔다 하지 않아야 한다.
저장하지 않고 왔다갔다 하면 HEAD가 특정 브랜치가 아닌 커밋을 가리키는 상태가 된다.
정상 : HEAD -> 브랜치 -> commit
비정상 : HEAD -> commit
해결할 때는 git branch -f [브랜치 이름] HEAD
=> 브랜치 버전을 HEAD와 같은 버전으로 옮기겠다
이전 버전 (현재 상태 유지)
git reset --soft [커밋 해시]
이전 버전 (작업 디렉토리 유지)
git reset --mixed [커밋 해시]
이전 버전 (완전 이전 버전으로)
git reset --hard [커밋 해시]
# git reset 실습.. 끔찍함 주의
파일 내용 수정 후 add, commit 하지 않고 바로 다른 버전으로 이동
4번째 작업 내용 날라감... 생각만 해도 끔찍한 깃 사고
'기타' 카테고리의 다른 글
[UML] UML 다이어그램 (유스케이스, 클래스) (0) | 2024.11.26 |
---|---|
[Markdown] 마크다운 사용법 정리 (0) | 2024.11.26 |