1. Git의 역할
1) 버전 관리.
만드는 과정이나 운영하는 과정에서 계속 뭘 더하고, 빼고 수정을 하게 된다. 나중에 이전 기능을 다시 가져오게 될 수 있고, 누가 실수로 잘못된 코드를 섞으면 복원해야 할 때도 있고, 어디가 어떻게 바뀌었는지 과거 내역을 확인해야 할 때도 있고. 그러기에 나중에 언제 필요로 할지 모르기에, 바뀌기 전 내역들도 중간중간 저장을 해 놓아야 한다. 클라이언트가 초창기 프로그램으로 하자고 했을 때, 백업해둔 게 없으면 망한거다.
이해하기 쉽게 요약하자면 게임에서의 세이브 파일과 비슷하다. (보스와 싸우기 전 다들 세이브 하잖아요?)
중요한 시점마다 프로젝트를 통째로 압축해서 날짜나 설명 등을 파일명에 넣고 따로 저장해두는 거다.
2) 협업
규모 있는 프로젝트는 개발자들이 여럿 붙어서 개발을 한다. 이럴 때 필요한 게 Git이다.
메인 폴더 안에 여러 다른 폴더와 파일들이 있고, 여러 개발자들이 난 이거, 넌 저거 하고 맡는다. 각자 컴퓨터에 전부 복사해서 작업하는 식이다. 이걸 버전 관리까지 하니 무언가 틀린 게 있어도 수정하기가 용이할 것이다.
2. Git의 정의
git을 시작하면 모든 수정내역들이 저장되는 .git이란 공간(숨김 폴더)이 생긴다. 백업에 포함할 파일들을 모두로 설정한다 가정(git add -A) 이 시점까지는 이러이러한 작업을 진행했다고 기록한 다음 'commit' 명령어를 실행하면 (git commit -m "(수행 내용)" 폴더의 전체 내용들이 찰칵하고 박제 된다.
이후로도 프로젝트에 의미있는 변화가 있을 때마다 commit해서 박제. 압축 파일로 전체가 따로 복사되는 게 아니라 각 버전의 변경사항들만 기록된다. 박제를 여러 번한다고 용량을 몇 배로 차지하지 않는다.
프로젝트를 과거 상태로 되돌려야 하는 상황이 오면, 박제 내역들을 확인한 다음(git logs) 박제됐던 과거의 상태로 복원한다. (git reset --hard 코드번호) 수정된 내역들은 복원되고, 새로 만든 파일들은 삭제되고, 지웠던 파일들은 복원된다.
또 프로젝트를 할 때, 어떤 기능을 넣기 애매하면 분기(branch)가 가능하다.(git branch 브랜치명) 시도를 할 부분은 다른 브랜치에서 작업을 하다가 적용해도 되겠다 싶으면 메인 브랜치를 합쳐버리면 된다.(git merge 브랜치명)
협업을 할 때, git으로 박제한 내용들을 원격으로 전송해서 공용공간에 저장할 수가 있다. 다른 구성원들이 작업해서 올린 내역들을 다운받고 거기에 내가 작업한 작업들을 전송하는 식으로 협업을 한다.
모든 과정들이 순서대로, 체계적으로 기록되고 관리되기에 문제가 생기더라도, 이 코드를 누가 건드렸는지 확인할 수 있고, 코드들을 과거로 되돌려서 문제를 해결할 수가 있다.
3. Git과 Github의 차이
git은 버전관리를 위한 소프트웨어이고, github은 git으로 저장돼서 원격전송된 내역들이 저장되는 공간을 제공하는 서비스이다.
git으로 관리하는 모든 코드들과 프로젝트들을 github에 언제든 무료로 저장할 수 있다.
쉽게 비유하자면 git은 동영상 찍는 앱, github은 그런 동영상을 저장하는 유튜브라고 대입할 수 있다.
출처: 얄팍한 코딩사전
'기타 개발' 카테고리의 다른 글
대기업 개발자 채용 요구 기술을 알아보자 - 1편 (서버 개발자) (1) | 2022.12.28 |
---|---|
신입 개발자가 반드시 알아야 하는 Git-Flow 모델 (0) | 2022.10.02 |
프로그램을 개발할 때 중요한 점. (0) | 2021.05.07 |
개발 환경 구축 방법 (0) | 2021.05.07 |