Git & GitHub 강좌/2. Git 기본 개념

Git의 주요 명령어 (add, commit, push, pull 등)

_Blue_Sky_ 2024. 10. 6. 08:23
728x90
728x90

Git의 핵심 명령어: 상세 가이드

Git은 버전 관리 시스템으로, 소프트웨어 개발 과정에서 코드의 변화를 추적하고 관리하는 데 필수적인 도구입니다. 이 글에서는 Git을 처음 접하는 분들을 위해 자주 사용되는 핵심 명령어인 add, commit, push, pull 등에 대해 자세히 설명하고, 각 명령어의 역할과 사용법을 예시와 함께 알아보겠습니다.

1. Git 초기 설정 및 저장소 생성

  • git init: 현재 디렉토리를 Git 저장소로 초기화합니다.
    • 새로운 프로젝트를 시작할 때 가장 먼저 실행하는 명령어입니다.
    • .git 숨겨진 디렉토리가 생성되며, 이곳에 모든 버전 정보가 저장됩니다.
  • git clone [URL]: 원격 저장소(예: GitHub, GitLab)의 프로젝트를 로컬로 복제합니다.
    • 다른 사람이 이미 만들어 놓은 프로젝트에 참여하거나, 기존 프로젝트를 다른 컴퓨터로 옮길 때 사용합니다.
728x90

 

2. 파일 상태 확인 및 변경 사항 추가

  • git status: 현재 작업 디렉토리의 상태를 확인합니다.
    • 어떤 파일이 변경되었는지, staging area에 추가되었는지 등을 알려줍니다.
    • 작업 중인 파일을 추적하고 다음 단계를 결정하는 데 도움이 됩니다.
  • git add [파일명]: 변경된 파일을 staging area에 추가합니다.
    • git commit을 통해 영구적으로 저장하기 전에 변경 사항을 임시로 저장하는 단계입니다.
    • 모든 파일을 한꺼번에 추가하려면 git add .을 사용합니다.

3. 변경 사항 커밋

  • git commit -m "커밋 메시지": staging area에 있는 변경 사항을 저장소에 커밋합니다.
    • 커밋 메시지는 변경 내용을 간략하게 설명하는 문구입니다.
    • 명확하고 간결한 메시지를 작성하는 것이 좋습니다.
    • 예: git commit -m "버그 수정: 로그인 오류 해결"

4. 로컬 저장소와 원격 저장소 간 동기화

  • git push [원격 저장소 이름] [브랜치 이름]: 로컬 저장소의 변경 사항을 원격 저장소로 업로드합니다.
    • 협업 시 다른 개발자와 코드를 공유하기 위해 사용합니다.
    • 일반적으로 origin이라는 이름의 원격 저장소를 사용하며, master 또는 main 브랜치에 push합니다.
    • 예: git push origin main
  • git pull [원격 저장소 이름] [브랜치 이름]: 원격 저장소의 변경 사항을 로컬 저장소로 가져옵니다.
    • 다른 개발자가 변경한 내용을 반영하거나, 최신 버전으로 업데이트하기 위해 사용합니다.
    • 충돌이 발생하면 수동으로 해결해야 합니다.

5. 브랜치 관리

  • git branch: 현재 브랜치를 확인하거나, 새로운 브랜치를 생성합니다.
  • git checkout [브랜치 이름]: 특정 브랜치로 이동합니다.
  • git merge [브랜치 이름]: 다른 브랜치의 변경 사항을 현재 브랜치에 병합합니다.

6. 기타 유용한 명령어

  • git log: 커밋 기록을 확인합니다.
  • git diff: 두 커밋 또는 파일 간의 차이점을 비교합니다.
  • git reset: 커밋을 되돌리거나, staging area에서 파일을 제거합니다.
  • git revert: 특정 커밋의 변경 사항을 반대로 적용합니다.

7. 추가 설명

  • staging area: 커밋하기 전에 변경 사항을 임시로 저장하는 공간입니다.
  • 브랜치: 개발 작업을 분리하기 위해 사용하는 독립적인 작업 공간입니다.
  • 원격 저장소: GitHub, GitLab 등과 같은 외부 서버에 위치한 저장소입니다.

결론

Git은 다양한 기능과 명령어를 제공하지만, 위에서 설명한 핵심 명령어만 숙달해도 효과적으로 버전 관리를 할 수 있습니다. 꾸준히 연습하고, 필요에 따라 추가적인 명령어를 학습하면 더욱 복잡한 프로젝트도 효율적으로 관리할 수 있습니다.

 

728x90
728x90