본문 바로가기
Developer/Git

git 명령어 commit, fetch, pull, push 사용법 및 특징

by 아우럼 2024. 9. 18.
반응형

fetch, commit, pull, push 명령어에 대해서 비전공자도 이해할 수 있는 수준으로 설명하려고 합니다.

 

git fetch, commit, pull, push 명령의 설명

  • git fetch 명령어는 원격 저장소의 최신 버전을 로컬 저장소에 내려받는 목적으로 사용합니다. 
  • git pull 명령어는 원격 저장소로부터 최신 버전을 가져와 로컬 저장소의 현재 브랜치에 병합하는 데 사용합니다.
  • 간단하게 설명하면, git fetch와 git merge를 합친 것과 같은 역할을 합니다. 
  • git commit 명령어는 추가되거나 수정된 모든 파일의 변경 사항 stage, change 영역으로 변경하는 목적으로 사용합니다.
  • git add 명령어로 change 영역에 넣어놓고, 다시 git commit 명령어로 stage 영역으로 분리해서 사용하기도 합니다.
  • git push 명령어는 로컬에 있는 파일을 원격 저장소로 upload 하는 목적으로 사용합니다.

git fetch, commit, pull, push 사용법.
git fetch, commit, pull, push 사용법.

git fetch, commit, pull, push 사용법

  • 원격 저장소로부터 모든 브랜치의 최신을 받습니다.
git fetch -all
  • 원격 저장소와 Local 영역의 내용을 merge 합니다.
git pull
  • 추가 및 수정된 파일을 stage 영역으로 이동합니다.
git add -A
  • 추가 및 수정된 파일을 commit 합니다.
git commit  -m 'commit message'
  • Local 영역에 있는 수정 사항을 원격 저장소로 upload 합니다.
git push

 

Git Fetch, Git Commit, Git pull, Git push 장단점

Git Fetch 장점, 단점.

Git Fetch 장점.

  • 안전성: Git fetch는 단순히 원격 저장소의 변경 사항을 다운로드하기만 하므로, 작업 중인 브랜치에 영향을 주지 않습니다. 
    이를 통해 다른 사람의 변경 사항을 미리 확인하고, 필요시 수동으로 병합할 수 있어 예기치 않은 충돌이나 오류를 줄일 수 있습니다.
  • 변경 사항 확인: Git Fetch를 통해서 가져온 내용을 바탕으로 git log, git diff 등의 명령어를 사용해 원격의 변경 사항과 로컬 작업 내용을 비교할 수 있으므로, 코드 리뷰와 충돌 예방에 유리합니다.

Git Fetch 단점.

  • 추가 작업 필요: Git fetch 자체는 로컬 브랜치에 변경 사항을 병합하지 않으므로, 이후에 수동으로 git merge 또는 git rebase를 실행해야 합니다. 
  • 이에 따라, 오랜 시간 작업을 하지 않으면 최신 상태를 유지하지 못하는 경우가 발생할 수 있습니다.
  • 일관성 관리: Git fetch 후에 병합 여부 및 충돌 해결을 개발자가 직접 결정해야 하므로, 경험이 부족하거나 관리가 체계적이지 않으면 저장소 관리가 복잡해질 수 있습니다.

Git Commit 장점, 단점.

Git Commit 장점.

  • 버전 관리: Git Commit 통해 코드 히스토리를 체계적으로 기록할 수 있어, 언제든지 과거의 상태로 되돌리거나 변경 사항을 추적할 수 있습니다.
  • 협업 및 의사소통: 명확한 Commit 메시지는 작업한 내용을 팀원들이 쉽게 이해할 수 있도록 도와주며, 나중에 버그가 발생했을 때 책임소재를 명확히 할 수 있는 기록 역할을 합니다.
  • 에도(rollback) 용이성: 문제가 발생할 경우, 이전 Commit으로 되돌리는 등의 북구 방법이 존재하여 프로젝트 관리에 있어 안전장치 역할을 합니다.

Git Commit 단점.

  • 커밋 메시지의 중요성: 부실한 Commit 메시지나 불필요하게 큰 단위의 커밋은 후속 작업 시 변경 사항을 파악하기 어렵게 만듭니다. 
  • 경험 많은 개발자들은 의미 있는 단위로 나누어 커밋하는 습관을 기르는 것이 중요합니다.
  • 잘못된 커밋으로 인한 문제: 만약 커밋한 내용에 오류가 있거나 불필요한 파일이 포함되었다면, 
  • 이를 수정하기 위해 git commit --amend나 리베이스(rebase) 등을 사용해야 하며 이 과정에서 히스토리 수정이 혼란을 초래할 수 있습니다.

Git Pull 장점, 단점.

Git Pull 장점.

  • 편리성: 단일 명령어로 Git fetch와 Git merge 과정을 동시에 진행하기 때문에, 여러 단계를 거치지 않고 최신 상태로 업데이트할 수 있습니다.
  • 신속한 업데이트: 개발자가 원격 저장소의 변경 사항을 빠르게 통합하여 동일한 코드 베이스에서 작업을 계속할 수 있게 도와줍니다.

Git Pull 단점.

  • 자동 병합의 위험성: 자동 병합은 사용자가 변경 사항의 세부 내용을 충분히 확인하지 않고 병합이 이루어질 수 있어, 충돌(conflict)이 발생하거나 의도치 않은 코드 변경이 함께 반영될 위험이 존재합니다.
  • 충돌 해결의 어려움: 특히 장기간 작업하다가 Git pull을 진행하면, 로컬과 원격 간에 많은 차이가 생겨 충돌이 발생할 가능성이 높아지며, 이 과정에서 복잡한 수동 충돌 해결이 필요할 수 있습니다.
  • 개인화된 업데이트 부족: Git fetch와 Git merge 단계를 분리하지 않고 바로 병합하기 때문에, 어떤 변경 사항이 추가되었는지 미리 검토하지 못하는 단점이 있습니다.

Git Push 장점, 단점.

Git Push 장점.

  • 협업의 핵심: 팀 전체가 동일한 최신 코드를 공유할 수 있도록 해주며, 코드 리뷰, CI/CD, 배포 등의 흐름이 원활하게 진행됩니다.
  • 백업 기능: 로컬에서 작업한 내용이 원격 저장소에 안전하게 보관되므로, 실수나 시스템 오류로 인해 로컬 데이터가 손실되더라도 복구가 가능합니다.
  • 분산 버전 관리의 이점: 분산 저장소에서는 각 개발자가 자유롭게 작업한 후, 원격 저장소에 Git push 하는 방식으로 협업이 이루어지므로, 중앙 서버에 의존하지 않는 유연한 개발 환경을 제공합니다.

Git Push 단점.

  • 커밋 충돌 및 실패: 원격 저장소에 반영하기 전에 다른 사람의 작업물이 이미 Git push 되어 있을 때, push에 실패할 수 있으며, 이 경우 git pull을 통해 최신 변경 사항을 병합한 후 다시 시도해야 합니다.
  • Force Push의 위험성: 때때로 잘못된 커밋이나 히스토리 정리를 위해 git push --force를 사용할 경우, 다른 팀원의 커밋이 덮어씌워지거나 히스토리가 왜곡될 가능성이 있어 각별한 주의가 필요합니다.
  • 보안 문제: 실수로 민감한 정보(예: 비밀번호, API 키 등) 를 push 하게 될 경우, 원격 저장소에 노출될 수 있습니다.
  • 반드시 .gitignore 파일 및 보안 정책을 준수해야 합니다.
반응형