git
git은 버전 관리 시스템
이다.
여기서 버전
이란, 당신이 a.txt라는 파일을 저장, 수정, 복사, 백업 등등을 하는 모든 작업을 말한다.
만약 당신의 프로젝트를 git repository에 등록했다면, git은 그 프로젝트 안에 있는 모든 파일들을 트래킹
한다.
git 트래킹 정보
트래킹 정보를 통해 개발자는 어떤 것이, 어디에서, 언제, 누가 바꿨는지 등등을 모두 알 수 있다.
또한 어떤 일이 일어났는지에 대한 모든 트래킹이 가능하기 때문에,
문제 상황 발생 시에는 파일의 history
를 통해 그 전 시점(commit)
으로 돌아갈 수 있다.
git은 어떤 파일들을 추적할 수 있는가
깃은 사용자가 추적하길 원하는 모든 것을 읽을 수 있다.
tmi)
사실 깃은 파일을 `Binary code`로 읽는다. (0, 1로 이루어진 코드를 의미한다.)
그래서 git은 0,1로 구성된 파일 내부의 차이점을 인식하고, 기억할 수 있다고 한다.
버전 관리 시스템?
중앙 서버에 A,B,C 컴퓨터가 연결된 상황이다.
이들은 모두 같은 버전을 유지하고자 노력한다.
어떻게 중앙 서버에 연결된 A,B,C 컴퓨터가 같은 버전을 유지할 수 있을까?
case 1. 중앙 서버에서 모든 것을 관리한다.
중앙 서버에서 버전을 관리
하고 버전이 갱신되면 중앙 서버로부터 A,B,C 컴퓨터의 버전을 갱신한다.
이 경우에는 저장소(repository)가 서버에만 존재
한다.
그러므로, 변경을 기록하고 싶다면 모두 서버에 기록해야 한다.
이 방식을 중앙 버전 관리 시스템 이라고 한다.
case 2. 중앙 서버에서도 버전을 관리하고, 로컬 컴퓨터에서도 관리한다.
중앙 서버와 A,B,C 컴퓨터 모두 버전을 관리
한다.
그러므로 이 경우에는 A,B,C 컴퓨터 모두 저장소
가 될 수 있다.
예를 들면,
컴퓨터 A에서 중앙 서버에 업데이트 내용을 반영하면,
컴퓨터 B에서 중앙 서버로부터 최신화킨다.
이로서 현재 버전, 파일들을 모두 컴퓨터 A와 동일하게 유지할 수 있다.
이와 같은 방식을 분산 버전 관리 시스템 이라고 한다.
git은 여기서 각 컴퓨터에서 버전을 관리
할 수 있도록 돕는다.
즉, git
의 버전 관리 능력
덕분에 A,B,C 컴퓨터 모두 저장소가 될 수 있다는 것이다.
git? github?의 관계
위에서, git은 개인 컴퓨터를 저장소
처럼 사용할 수 있도록 돕는다고 했다.
그럼 중앙 서버
역할을 할 수 있는 저장소가 필요한데, 이 저장소의 역할을 github
가 해준다.
깃허브를 통해 각자 다른 환경에 있는 개발자들은 협업을 할 수 있다.
flow
git을 통해 본인 컴퓨터에서 버전을 관리할 수 있고,
본인 컴퓨터에서 관리한 최신 버전으로 github를 갱신하면,
다른 개발자들이 github를 통해 중앙 서버에 있는 버전을 자신의 컴퓨터에 업데이트 할 수 있다.
참고한 사이트
https://medium.com/@psychet_learn/git-사용법-1강-git이란-무엇인가-340438d9a69f
https://crynut84.github.io/2015/06/10/introduction-to-git/
https://codevang.tistory.com/217
'Git & Github' 카테고리의 다른 글
[Commit] 과거 커밋으로 돌아가서 새로운 브랜치(분기) 만들기 (0) | 2022.06.07 |
---|---|
[git] git 명령어 (0) | 2021.07.24 |
[깃허브] 깃허브 처음 시작하기 / Github Desktop 어플 (Mac OS) (2) | 2021.04.27 |