본문 바로가기
IT 이야기

Git 사용법: Remote Repository, Clone, Commit, Push, Pull, Merge Conflict

by LABOR 수달김수달 2020. 10. 15.
반응형

Git 사용법: Remote Repository, Clone, Commit, Push, Pull, Merge Conflict

서론

Git은 분산 버전 관리 시스템으로, 소스 코드의 버전을 관리하고 협업을 용이하게 해주는 강력한 도구입니다. 이번 블로그 포스팅에서는 Git의 기본 사용법과 중요한 개념들을 소개하고, 원격 저장소와의 상호작용, 브랜치 관리, merge conflict 해결 등을 다루겠습니다.

로컬저장소 만들기

Git을 사용하기 위해 먼저 로컬저장소를 만들어야 합니다. 다음과 같은 명령으로 로컬저장소를 초기화합니다.

git init

파일 커밋하기

로컬저장소에 변경된 파일들을 커밋하면, 해당 시점의 스냅샷이 기록됩니다. 커밋은 다음과 같이 합니다.

git add .           # 변경된 모든 파일을 스테이징 영역에 추가
git commit -m "커밋 메시지"    # 스테이징 영역의 파일들을 커밋

원격저장소 추가하고 그곳에 푸쉬하기

원격 저장소를 추가하여 다른 사람과 협업하거나 백업을 관리할 수 있습니다. 원격저장소를 추가하고 푸시하는 방법은 다음과 같습니다.

git remote add origin <원격저장소URL>      # 원격 저장소 추가
git push -u origin <브랜치이름>          # 원격 저장소로 푸시

원격저장소 복제하기 (Clone)

기존에 존재하는 원격 저장소를 로컬에 복제하여 자신의 로컬저장소를 만들 수 있습니다. 복제는 다음과 같이 합니다.

git clone <원격저장소URL>      # 원격 저장소 복제

원격저장소에 저장된 내용 땡겨오기 (Pull)

원격 저장소에 변경된 내용이 있을 때, 이를 로컬로 가져오기 위해서 Pull 명령어를 사용합니다.

git pull origin <브랜치이름>      # 원격 저장소에서 변경사항을 가져와 병합

Merge Conflict 발생 시 해결

여러 명이 협업하다 보면 같은 파일의 같은 부분을 동시에 수정하면 Merge Conflict가 발생할 수 있습니다. 이를 해결하기 위해선 다음과 같은 단계를 거칩니다.

  1. 충돌이 발생한 파일 열기
  2. 충돌 표시(<<<<<<<, =======, >>>>>>>)를 확인하고 원하는 코드로 수정
  3. 수정한 내용을 스테이징 영역에 추가
  4. 커밋하여 충돌 해결

브랜치 관리

Git은 가지(branch)를 만들어서 독립적으로 작업하고, 이후에 필요한 경우에 병합(Merge)할 수 있습니다.

  • 브랜치 생성: git branch <브랜치이름>
  • 브랜치 전환: git checkout <브랜치이름>
  • 브랜치 생성과 전환: git checkout -b <브랜치이름>

리베이스 (Rebase)

Rebase는 커밋들을 합치거나 순서를 바꿔서 깔끔한 커밋 히스토리를 유지하도록 도와줍니다.

git rebase <기준브랜치>    # 현재 브랜치를 기준브랜치에 리베이스

태그 (Tag)

특정 커밋에 태그를 달아서, 해당 시점을 나중에 쉽게 찾거나 배포 버전을 관리할 수 있습니다.

git tag <태그이름>       # 태그 생성

원격 저장소 연동과 CI/CD 통합

원격 저장소와 연동하여 지속적인 통합과 배포를 자동화할 수 있습니다. 대표적으로 GitHub Actions, GitLab CI/CD, Jenkins 등을 사용합니다.

보안 관리

Git은 중요한 정보(패스워드, API 토큰 등)을 포함할 수 있으므로 보안에 유의해야 합니다. .gitignore 파일을 이용하여 민감한 정보가 노출되지 않도록 합니다.

Git GUI 도구

Git은 커맨드라인 외에도 다양한 GUI 도구를 제공하여 사용자 친화적인 인터페이스를 제공합니다. 몇 가지 인기 있는 GUI 도구로는 Sourcetree, GitKraken, GitHub Desktop 등이 있습니다.

결론

이렇게 Git의 기본 사용법과 원격저장소와의 상호작용, 브랜치 관리, Merge Conflict 해결 등에 대해 살펴보았습니다. Git은 협업을 위한 필수적인 도구로, 지속적으로 업데이트되고 발전하는 커뮤니티에서 지원되고 있습니다. Git을 제대로 활용하여 프로젝트 관리와 협업을 효율적으로 진행해보세요. Happy coding!

반응형