본문 바로가기

Backend/Git

[패캠 / Git] Git / Github

728x90

Git

: 버전 관리를 위한 도구

=변경 내역 기억, 필요시 작업 되돌리기, 협업시 코드를 쉽게 나누고 합치며 개발 할 수 있게 해주는 도구

 

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도 해당 커밋의 모습과 동일하게 변한다.

 

728x90

'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