[Git] Git Commands 정리

김찬미·2024년 11월 19일

GitHub

목록 보기
7/7
post-thumbnail

Git이란?

Git은 분산 버전 관리 시스템(DVCS)으로, 소프트웨어 개발 과정에서 소스 코드의 변경 사항을 추적하고 관리하는 데 사용된다. 또한 Git을 사용하면 여러 개발자가 동시에 작업할 수 있으며, 변경 내용을 효과적으로 병합하고 관리할 수 있다.

GitHub란?

GitHub은 Git을 기반으로 한 웹 호스팅 서비스로, 개발자들이 협업하고 소스 코드를 공유할 수 있는 플랫폼을 제공한다. GitHub를 통해 프로젝트를 공개적으로 또는 비공개로 관리할 수 있으며, 이슈 트래킹, 풀 리퀘스트 등의 기능을 활용할 수 있다.


📄 Git Commands 정리

1) 초기화 및 기본 설정

1-1) git config

  • Git 설치 후 처음으로 해야 하는 일
  • --global 옵션은 처음에만 설정한다.
    • 만약 프로젝트마다 다른 이름과 메일을 사용하고 싶다면 옵션을 빼고 실행한다.
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

1-2) git init

  • 현재 디렉토리를 새로운 Git 저장소로 초기화한다.
  • .git 디렉토리가 생성되며, 이곳에서 Git의 모든 데이터가 관리된다.
cd my_project  
git init  

1-3) git clone

  • GitHub의 원격 저장소를 내 로컬에 복제한다.
    • 즉, repository에 있는 파일을 내 로컬의 특정 디렉토리로 가져올 수 있다.
  • 끝에 .를 붙이면 현재 폴더에 바로 파일이 저장된다.
# 새 디렉토리에 복제
git clone https://github.com/user/repo.git

# 현재 디렉토리에 복제
git clone https://github.com/user/repo.git .

2) 파일 상태 관리

2-1) git status

  • 변경된 파일, 추가되지 않은 파일, 스테이징된 파일 등의 상태를 확인한다.
# 파일 "example.txt"를 수정했을 때
git status
# 출력 결과
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
        modified:   example.txt

2-2) git add

  • 워킹 디렉토리에서 변경된 파일을 스테이징 영역에 추가한다.
  • git add <file>: 특정 파일만 추가
  • git add .: 모든 변경된 파일 추가
# 특정 파일 추가
git add example.txt

# 모든 파일 추가
git add .

2-3) git commit

  • 스테이징된 변경사항을 로컬 저장소에 저장한다.
  • git commit: 기본적인 명령어, 이 경우 따로 커밋 메시지 작성 창이 뜬다.
  • git commit -m "message": 커밋 메시지를 포함하여 변경사항 저장
  • git commit --amend: 마지막 커밋 수정
# 커밋 메시지와 함께 커밋
git commit -m "Fix typo in example.txt"

# 마지막 커밋 수정
git commit --amend -m "Updated commit message"

3) 브랜치 관리

3-1) git branch, git switch

  • 브랜치를 생성하고 이동한다.
  • git branch: 브랜치 생성
  • git switch: 생성된 브랜치로 이동
# 브랜치 생성
git branch feature-login

# 생성된 브랜치로 이동
git switch feature-login

3-2) git checkout

  • 브랜치를 생성하고 바로 이동한다.
git checkout -b feature-login

3-3) git merge

  • 다른 브랜치의 내용을 현재 브랜치에 병합한다.
git switch main
git merge feature-login
# 출력 결과
Updating abc1234..def5678
Fast-forward
 1 file changed, 10 insertions(+)

4) 원격 저장소 관리

4-1) git remote

  • 원격 저장소를 로컬 저장소와 연결한다.
git remote add origin https://github.com/user/repo.git
git remote -v
# 출력 결과
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

4-2) git push

  • 로컬 브랜치의 변경사항을 원격 저장소로 업로드한다.
git push origin main
# 출력 결과
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 456 bytes | 456.00 KiB/s, done.

5) 기록 확인

5-1) git log

  • 각 커밋의 ID, 메시지, 작성자 정보를 확인한다.
  • git log: 상세 커밋 기록 확인
  • git log --oneline: 간단히 커밋 기록 확인
git log --oneline
# 출력 결과
abc1234 Fix typo in example.txt
def5678 Add README file
ghijkl9 Initial commit

6) 파일 복구

6-1) git restore

  • 변경사항을 워킹 디렉토리에서 되돌린다.
git restore example.txt

6-2) git reset

  • 특정 커밋으로 되돌린다.
  • git reset <commit-id>: 커밋 되돌림(변경사항 유지)
  • git reset --hard <commit-id>: 커밋 되돌림(변경사항 삭제)
git reset --hard abc1234
# 출력 결과
HEAD is now at abc1234 Fix typo in example.txt

7) 태그 관리

7-1) git tag

  • 태그를 생성하거나 확인한다.
  • git tag <tag-name>: 태그 생성
  • git tag: 태그 목록 확인
git tag v1.0
git tag
# 출력 결과
v1.0
profile
백엔드 지망 학부생

0개의 댓글