Published on

Git 시작하기: 기본 개념, 자주 쓰는 명령어 및 흐름

Authors
  • avatar
    Name
    devnmin
    Twitter

Git 설명과 자주 쓰는 명령어


Git이란?

Git은 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 으로, 코드 변경 사항을 추적하고 협업할 수 있도록 돕는 도구입니다.
개발자들이 프로젝트를 효율적으로 관리하고 협업할 수 있도록 여러 기능을 제공합니다.

  • 분산형 버전 관리 시스템: 중앙 서버 없이도 로컬에서 버전을 관리할 수 있음
  • 빠르고 가벼운 커밋: 변경 사항을 저장하는 속도가 빠름
  • 브랜치 기능: 독립적인 작업 공간을 만들고 쉽게 병합 가능
  • 협업 지원: GitHub, GitLab, Bitbucket과 같은 원격 저장소를 활용하여 팀원들과 공동 작업 가능

Git 기본 흐름

Git을 활용한 기본적인 작업 흐름은 다음과 같습니다.

  1. 저장소(Repository) 생성 및 초기화

    git init
    

    새로운 Git 저장소를 생성합니다.

  2. 파일 추가 및 변경 사항 저장

    git add <파일명>  # 특정 파일 추가
    git add .        # 변경된 모든 파일 추가
    

    변경된 파일을 스테이징 영역에 추가합니다.

  3. 커밋(Commit)

    git commit -m "커밋 메시지"
    

    변경 사항을 기록합니다.

  4. 원격 저장소에 업로드

    git push origin <브랜치명>
    

    로컬의 변경 사항을 원격 저장소(GitHub, GitLab 등)에 업로드합니다.

  5. 원격 저장소에서 변경 사항 가져오기

    git pull origin <브랜치명>
    

    원격 저장소의 최신 변경 사항을 가져옵니다.


Git 자주 쓰는 명령어

1. Git 기본 설정

git config --global user.name "사용자 이름"
git config --global user.email "이메일"

Git 사용자 정보를 설정합니다.

git config --global core.editor "vim"

기본 텍스트 편집기를 변경할 수 있습니다.

git config --list

설정된 Git 정보를 확인합니다.


2. 저장소 초기화 및 복제

git init

현재 디렉토리를 Git 저장소로 초기화합니다.

git clone <저장소 URL>

원격 저장소를 로컬로 복제합니다.


3. 파일 추적 및 변경 사항 확인

git status

작업 디렉토리의 상태를 확인합니다.

git diff

스테이징 전 변경된 내용을 확인합니다.

git diff --staged

스테이징된 변경 사항을 확인합니다.

git log --oneline --graph

커밋 히스토리를 한 줄로 간단하게 확인합니다.


4. 파일 추가 및 커밋

git add <파일명>
git add .

파일을 스테이징 영역에 추가합니다.

git commit -m "커밋 메시지"

변경 사항을 커밋합니다.

git commit --amend -m "새로운 커밋 메시지"

최근 커밋 메시지를 수정합니다.


5. 브랜치 작업

git branch

현재 존재하는 브랜치를 확인합니다.

git branch <브랜치명>

새로운 브랜치를 생성합니다.

git checkout <브랜치명>

해당 브랜치로 이동합니다.

git checkout -b <새로운 브랜치명>

새로운 브랜치를 생성하고 해당 브랜치로 이동합니다.

git merge <브랜치명>

현재 브랜치에 다른 브랜치를 병합합니다.

git branch -d <브랜치명>

브랜치를 삭제합니다.


6. 원격 저장소 연결 및 관리

git remote add origin <저장소 URL>

원격 저장소를 추가합니다.

git remote -v

연결된 원격 저장소를 확인합니다.

git push origin <브랜치명>

변경 사항을 원격 저장소에 업로드합니다.

git pull origin <브랜치명>

원격 저장소에서 최신 변경 사항을 가져옵니다.

git fetch

원격 저장소의 변경 사항을 가져오지만 자동 병합은 하지 않습니다.


7. 커밋 수정 및 되돌리기

git reset --soft HEAD~1

가장 최근 커밋을 취소하고 스테이징 영역에 유지합니다.

git reset --hard HEAD~1

가장 최근 커밋을 삭제하고 파일도 이전 상태로 되돌립니다.

git revert <커밋 해시>

특정 커밋을 되돌리는 새로운 커밋을 만듭니다.

git checkout -- <파일명>

파일을 가장 최근 커밋 상태로 되돌립니다.


8. 태그(Tag) 관리

git tag <태그명>

태그를 추가합니다.

git tag

현재 태그 목록을 확인합니다.

git push origin <태그명>

태그를 원격 저장소에 업로드합니다.

git push origin --tags

모든 태그를 원격 저장소에 업로드합니다.

git tag -d <태그명>

로컬에서 태그를 삭제합니다.

git push origin --delete <태그명>

원격 저장소에서 태그를 삭제합니다.


정리

Git을 활용하면 코드 변경 사항을 쉽게 관리하고 팀원과 효율적으로 협업할 수 있습니다.
특히 브랜치와 원격 저장소를 활용하면 대규모 프로젝트에서도 효과적으로 작업할 수 있습니다.

Git 사용 흐름 요약

  1. git clone <저장소 URL> : 원격 저장소를 로컬로 복제
  2. git branch <새로운 브랜치명> : 새로운 브랜치 생성
  3. git checkout <브랜치명> : 작업할 브랜치로 이동
  4. git add . : 변경된 파일을 스테이징 영역에 추가
  5. git commit -m "설명" : 변경 사항 커밋
  6. git push origin <브랜치명> : 원격 저장소에 업로드
  7. git pull origin <브랜치명> : 최신 변경 사항 가져오기

Git을 활용하면 코드 관리를 효율적으로 할 수 있으며, 협업에서도 강력한 도구가 됩니다. 😊