Search
Duplicate
⛑️

Git

Git이란 무엇인가?

Git은 DVCS로 프로젝트의 로컬 복제본이 완전한 버전 제어 레포지토리이다.
이러한 모든 기능의 로컬 레포지토리 덕분에 원격으로 쉽게 작업할 수 있다.
개발자는 로컬로 작업을 커밋한 다음 레포지터리의 복사본을 서버의 복사본과 동기화한다.
주로 여러 개발자가 하나의 소프트웨어 개발 프로젝트를 진행할 때, 소스 코드를 관리하는 데 사용된다.

Git 기본 사항

작업이 저장되면 Git에서 커밋은 생성한다.
커밋은 모든 파일의 특정 시점의 스냅샷으로 파일이 한 커밋에서 다음 커밋으로 변경되지 않는 경우에는 이전에 젖아된 파일을 사용한다.
이 디자인은 파일의 초기 버전을 저장하고 시간이 지남에 따라 델타 레코드를 유지하는 다른 시스템과 다르다.
커밋은 다른 커밋에 대한 연결을 생성하여 개발 기록의 그래프를 형성하여 이전 커밋으로 되돌리기, 파일이 커밋에서 다음 커밋으로 변경된 내용, 위치 및 시기와 같은 정보를 확인할 수 있다.
커밋은 Git에서 커밋 내용의 고유한 암호화 해시로 식별되는데, 모든 것이 해시되므로 Git에서는 검색하지 않고는 변경하거나 정보가 손실되는 것은 불가능하다.

분기

각 개발자는 변경 내용을 각자의 컴퓨터의 로컬 레포지터리에 저장한다.
결과적으로 특정 시점에 대한 파일 스냅샷에 대해서 여러 변경 내용이 있을 수 있다. Git에서는 변경 내용을 격리하고 나중에 다시 병합할 수 있는 도구를 제공한다.
진행 중인 작업을 위한 간단한 포인터인 분기는 이 분리를 관리한다. 분기에서 만든 작업이 완료되면 팀의 메인 분기에 다시 병합될 수 있다.

파일 및 커밋

Git의 파일은 수정, 스테이징 또는 커밋되어있는 세 상태 중 하나이다.
파일이 처음 수정되면 변경 내용은 로컬의 작업 디렉토리에만 존재한다.
개발자는 커밋에 포함할 변경된 파일을 준비해야 한다. 준비 영역에는 다음 커밋에 포함할 모든 변경 내용이 포함된다.
개발자가 스테이징된 파일에 만족하면 파일은 변경된 내용을 설명하는 메시지와 함께 커밋으로 패키징된다. 이 커밋은 개발 기록의 일부가 된다.
스테이징을 사용하면 개발자가 커밋에 저장한 파일 변경 내용을 선택하여 큰 변경 내용을 일련의 작은 커밋으로 분리할 수 있다.
커밋 사이즈를 줄이면 커밋 기록을 검토하여 특정 파일의 변경 내용을 쉽게 확인할 수 있다.

장점

동시 개발
모든 개발자는 고유한 로컬 코드 레포지터리를 소유하고 있으며 메인 분기에서 작업이 가능하다.
Git은 거의 모든 작업이 로컬이므로 오프라인으로 동작한다.
통합
Git은 대부분의 도구와 제품에 기본 제공된다.
모든 주요 IDE에는 Git이 기본적으로 지원되며 많은 도구는 CI, CD, 테스트 자동화, 작업 항목 추적, 지표 및 보고 기능 통합을 지원한다.
강력한 커뮤니티 지원
풀 리퀘스트
풀 리퀘스트를 통해 메인 브랜치에 머지하기 전에 팀과 코드 변경 내용을 논의할 수 있다.
풀 리퀘스트에서 일어나는 토론은 품지을 보장하고 기술이 전파되는 데 기여한다.
GitHub에서 우리는 개발자가 파일 변경 내용을 찾아보고 커밋을 검사하고 메모를 남고기 빌드를 보고 코드를 승인할수록 투표할 수 있는 환경을 제공한다.