오픈소스의 대표적인 소프트웨어 GIT

git 이해하기

Git은 컴퓨터로 작업한 내용을 각 단계마다 저장하여 관리하는 도구(VCS : Version Control System)중 하나입니다.Git을 검색하시면 설명 중 “분산 버전 관리 시스템" 이라고 나올겁니다. 버전관리 시스템은 작업한 내용을 각 단계마다 저장하여 관리합니다. 그런데 “분산”이란? 작업내용을 저장하여 관리하는데 분산이 무엇일까?

Git에서 차이를 두는것은 원격저장소와 로컬저장소입니다. 서브버전은 중앙저장소에 모든것을 저장해서 관리하는 반면에, Git 은 로컬저장소에 저장이 된 다음 원격저장소에 저장이 되는 구조를 가졌습니다.

이 그림은 VCS의 두 종류인 서브버전과 Git 을 비교한그림입니다. 두 그림 모두 단계를 저장소에 저장하고 다운로드하는 과정을 거치는건 비슷한데요. Git에서 차이를 두는것은 원격저장소와 로컬저장소입니다. 서브버전은 중앙저장소에 모든것을 저장해서 관리하는 반면에, Git 은 로컬저장소에 저장이 된 다음 원격저장소에 저장이 되는 구조를 가졌습니다. 이것이 간단하게 이해한 "분산"의 개념입니다.

git 첫걸음 따라가기

1. git환경 구축하기

  • 새로운 저장소 만들기 & 저장소 받아오기

    • 위 과정은 원격저장소에 있는 환경을 내 Working Directory 혹은 로컬저장소에 가져오는 것을 의미합니다.
    • 그러므로 실질적인 작업은 온라인이 아닌 원격저장소를 clone 해온 나의 Working Directory에서 진행되는 것이라 볼 수 있습니다.

2. 작업의 흐름

  • 추가와 확정

    • 여기서 WD(Working Directory)를 현재 작업하는 공간이라고 하면 Index는 잠시 머무르는 중간단계 Head는 위의 말을 빌리면 로컬저장소라고 봐도 무방합니다.
    • "add"와 "commit"은 각각 파일을 해당하는 단계로 넘겨 올릴 때 필요한 git 명령어라고 할 수 있습니다.
  • 로컬저장소에 변경내용 발행(push)하기

    • Push 라는 git 명령어를 사용하면, commit되어서 아직 로컬저장소에만 머무르고 있는 파일들을 원격저장소에 올려 다른 사람들과 공유할 수 있게 됩니다.
  • Branch

    • 가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용합니다.우리가 저장소를 새로 만들면 기본으로 master 가지가 만들어집니다.이제 다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면 master 가지로 돌아와 병합하면 되는 것입니다.
    • 위 그림의 경우에는 기본 branch인 master가지 외에 feature_x라는 branch를 쳐서 작업을 한뒤에 나중에 다시 master branch로 병합하는 과정을 설명한 그림입니다.
  • 갱신과 병합(Fetch & Merge)

    • 우리의 로컬 저장소를 원격 저장소에 맞춰 갱신하려면 pull이라는 git 명령어를 사용합니다. 이렇게 하면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에 받아지고(fetch), 병합(merge)됩니다. 다른 가지에 있는 변경 내용을 현재 가지(예를 들면, master 가지)에 병합하려면 git merge <가지 이름>을 실행하면 됩니다.

results matching ""

    No results matching ""