
Git 그리고 GitHub에 대한 설명에 앞서 간단한 서론으로 시작하겠습니다.
현대의 S/W 개발은 복잡하고 다양한 기술의 결합이며 이러한 환경에서
효과적인 협업과 체계적인 버전 관리는 필수적이라 할 수 있습니다.
Git과 GitHub는 이러한 요구를 충족시키는 핵심 도구 중 하나이며
개발자들이 코드의 변화를 추적하고 여러 사람이 공동으로
작업할 수 있게 해주는 강력한 시스템입니다.
Git이란 컴퓨터 파일의 변경사항을 추적하고 파일들의 작업을 조율하는
분산 버전 관리 시스템이며 S/W 개발에서 코드를 관리, 기록, 버전 관리를
해줌으로 체계적인 개발이 가능하도록 도와주는무료 공개 S/W입니다.
변경 관리,Branch(분기),Merge(병합)등의 다양한 기능을 제공하고
개발자가Commit을 통해 코드의 변경사항을 저장하면 이는 시간을 거슬러
과거의 상태로 돌아갈 수 있는Check Point역할을 합니다.
Branch기능을 사용 시원본 코드를 변경하지 않고
실험적인 기능을 개발할 수 있는 별도의 작업 공간을 만들 수 있으며
이후Merge를 통해 성공적인 변화를 기존 메인 프로젝트에 통합할 수 있습니다.
![]()
- 앞으로
형상관리도구라는 말을 많이 언급할 텐데 이걸 쉽게 풀어 얘기한다면
개발 코드를 입력하다실수를 하거나 오류가 발생하면 쉽게 취소할 수 있고
과거의 원하는 시점으로 돌아갈 수 있으며과거의 코드와 현재의 코드를 비교해 볼 수 있게 해주는 것이 바로형상관리도구입니다.
Git은 항상 우리가 만든 모든 파일들을 지켜보고 있고
또추가,수정,삭제된 사항들을 기록하고 있으며 같은 프로젝트라도
다른 버전으로 생성하여 동일한 밑그림 코드에서 작업이 가능하도록 도와줍니다.
- 3개의 프로젝트가 완성되는 시점이 다르더라도 중간에 코드 변경을 일괄적으로
적용할 수 있도록 여러 개발자들의 작업을 도와주는 매우 유용한 시스템입니다.
- 버전 관리 시스템의 이점은 이전 버전의 상태를 기억하는 것으로부터 파생됬고
버전에 따라 수정 내용을 비교하기도 하며 실수로 파일이 훼손되었을 경우에도
이전 버전을 불러와 쉽게 복구할 수 있습니다.
- 혼자서 작업을 하는 것이 아닌 팀 단위로 공동 작업하는 경우 이러한 시스템을 통해
더 생산성 있는 관리를 할 수 있고 어떤 범위의 작업을 누가 했는지 알 수 있습니다.
또한 오류 발생 시 누가 실수를 했었는지 추적을 하는 것도 가능합니다.
Git은 자동으로 버전관리를 하며 업데이트 및 파일 패치 배포도 쉽게 관리할 수
있도록 도와줍니다. 그래서 대형 프로젝트를 진행하거나백엔드,프론트엔드를
따로 개발할 때에도Git을 자주 사용합니다.
Branch를 통해 개발한 뒤Git에 병합하는Merge작업 또한 가능하며
아래 사진은Master를 같은 환경으로 하여 두 갈래(feature)로 나눠 작업하고
추후 오류 없이 병합이 가능합니다.![]()
브랜치란독립적인 공간을 만든다는 뜻이며 새로 만든 브랜치는 원래 있던
본래의 작업물과 동일한 상태를 가지며브랜치에서 수정 후커밋을 해도
기존 작업물에는 어떠한 영향도 미치지 않습니다.
- 쉽게 말하면 기존의 도안을 복제하여 그 위에 먼저 실험적으로 작업해 볼 수 있다는
뜻이고 또한 분기 지점을 생성해서 구역을 나눠 동시에 진행이 가능하다는 말 입니다.
Merge는병합한다는 의미로 작업이 성공적으로 진행된 것이 확인될 시
본 게시물(master)에분기 작업(branch)를 병합하는 작업을 말합니다.
Commit이란변경된 사항들을 확정하여 저장소에 저장한다는 뜻입니다.
하지만 공용 저장소를 사용하기 때문에 다른 개발자와 실시간으로 협업하며
서로의 작업을 공유할 수는 없습니다.
- 위의 단점을 보완하고자 등장한 것이 바로
GitHub입니다.