Git
: 버전 관리를 위한 도구
=변경 내역 기억, 필요시 작업 되돌리기, 협업시 코드를 쉽게 나누고 합치며 개발 할 수 있게 해주는 도구
- 버전: 유의미한 변화가 결과물로 나온 것(없던 기능 추가 / 있던 기능 삭제 / 버그 수정)
- 필요없는 파일들: https://www.toptal.com/developers/gitignore/ 에서 확인
Github
: 원격 저장소 호스팅 서비스
- 원격 저장소: 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
- 로컬 저장소: 내컴퓨터 안에 있는 저장소
"작업한 내용을 스테이지에 올려서 로컬 저장소에 커밋하고, 이를 푸시해서 원격 저장소로 보낸다"
git bash 초기 설정
git config --global user.name "이름"
git config --global user.email "깃허브 이메일"
깃이 관리하는 세 개의 공간
1. 작업 디렉터리(워킹 디렉터리, working directory) : 버전 관리의 대상이 위치하는 공간, .git이 있는 디렉터리
2. 스테이지 : 다음 버전이 될 후보가 올라가는 공간
3. 저장소(레포, repository)
-> 2,3은 깃이 관리하는 가상의 공간(눈에 보이지 않는다)
=> 작업 디렉터리 내에서 변경 사항 생성 -> 스테이지로 add -> 로컬 저장소로 commit -> 원격 저장소로 push
Git 명령어
git init : 로컬 저장소 만들기
git status: 작업 디렉터리 상태 확인
git add <스테이지 추가할 대상> : <스테이지 추가할 대상> 스테이지에 올리기
▶ git add . : 모든 변경사항 스테이지에 올리기
git commit -m "<커밋 메세지>" : <커밋 메세지> 로써 커밋하기
- 커밋 메세지: 어떤 변경사항이 생겻는지에 대하여 글로 설명해 놓은것, 커밋 컨벤션에 맞춰서 작성하는것을 권장
▶ git commit: 아래와 같이 편집기로 자세한 커밋 메세지와 함께 커밋하기

(vi 편집기가 아닌 다른 편집기로 뜬다면 git commit --global core.editor "vim"을 입력하면 된다. )
git log : 커밋 목록 조회하기
//git log 입력시 나오는 정보들
커밋 해시(== 짧은 커밋 해시) : 커밋을 지칭하는 고유한 값
author: user.name, email 이 나옴
date: 커밋한 날짜
커밋 메세지
git diff: 최근 커밋과 작업 디렉터리 비교(만약 stage로 올렷다면 비교할 수 없다)
▶ git diff --staged: 최근 커밋과 스테이지 비교
▶ git diff <커밋1><커밋2>: 커밋끼리 비교 (커밋1에 대해 커밋2이 뭐가 바뀌었나?)
git stash: 변경 사항 임시 저장
▶ git stash -m "메세지" : 변경사항 메세지랑 함께 임시 저장
▶ git stash list: 임시 저장된 작업 내역 조회하기 (stack구조로 저장됨)
** 작업 되돌리기 **
revert: 버전을 되돌린 새로운 버전 만들기, 기존 버전들이 유지가 된다
reset: 버전을 완전히 되돌리기, 커밋 로그를 깔끔하게 유지
-reset의 옵션 soft, mix, hard
- —soft: HEAD가 특정 커밋(과거 또는 미래)을 새롭게 가리키게 된다. 대신 현재 작업 중인 작업 디렉터리와 스테이지는 아무런 영향을 받지 않는다.
- ㅡmix: HEAD가 특정 커밋(과거 또는 미래)을 새롭게 가리키게 된다. 그리고 스테이지도 해당 커밋의 모습과 동일하게 변합니다. 하지만 현재 작업 중인 작업 디렉터리는 아무런 영향을 받지 않는다.
- —hard: HEAD가 특정 커밋(과거 또는 미래)을 새롭게 가리키게 된다. 그리고 staging area와 현재 작업 중인 working directory도 해당 커밋의 모습과 동일하게 변한다.
[출처] [코드잇] git reset의 3가지 옵션 제대로 이해하기|작성자 코드잇
'Backend > Git' 카테고리의 다른 글
[패캠/Github] Github 기초 (0) | 2023.07.13 |
---|---|
[패캠/Git] 브랜치 관리하기 (0) | 2023.07.12 |
[패캠 / Git] Git CLI (0) | 2023.07.11 |
[패캠 / Git] Git 전략 (0) | 2023.07.11 |