개발 관련 지식/GIT
[GIT] 생활코딩, GIT 1
코딩하는 문과생
2019. 12. 13. 16:14
[수업 소개]
From 리눅스 관리를 위해 탄생
그러나 수많은 소스코드가 git을 통해 관리되고 있다.
버전관리 시스템 GIT
- 많은 사람들이 동시에 하나의 프로젝트를 관리할 때 그 효과가 발휘된다.
[GIT의 목적]
앞에 것을 모르면 뒤에 것을 모른다.
- 버전관리
- 백업
- 협업
[버전관리]
우리는 가끔 이전 파일로 돌아가고 싶을 때가 있다.
그리고 버전마다 언제 수정했고, 설명을 부여하고 싶다.
파일을 수십개 작업할 때도 있다.
<용어>
Commit(통지): 버전을 생성한다.
<특징>
- 버전마다 무슨 차이가 발생한지 알 수 있다.
- 파일 하나로 버전 관리가 가능(설명: msg1, msg2, msg3...)
- History로 버전 확인 가능
- 이전 버전으로 돌아가기 수월하다.
[백업]
우리는 언제 고장날 지 모르겠다.
그러나 컴퓨터는 언젠가 고장이 난다.
그래서 ***백업***이 필요하다.
<용어>
publish: 발행하다. 원격 저장소 등록
Repository: 저장소(지역 저장소, 원격저장소)
Push: 지역저장소->원격저장소
Pull: 원격저장소 -> 지역저장소
- 원격 저장소에서도 버전확인이 가능
- Push&Pull로 동기화 작업을 한다.
[협업]
동기화된 컴퓨터 중 하나가 다른사람이 작업한다고 생각.
- A: 내 컴퓨터
- B: 다른 사람 컴퓨터
A, B간 Push와 Pull을 통해 협업이 진행된다. 원격저장소를 매개로 해서
But, 두 사람이 같은 파일을 수정했다면? 같은 파일의 같은 행을 수정했다면?
[깃의 종류]
- Github.com
- TortoiseGit - 윈도우에 기생해서 사용된다.
- Sourcetree - 이전 버전과 내용상 차이가 뭐가 있는지 확인 가능, 그러나 복잡
$ git log
# 버전 확인 가능
$ git status
# 현재 상태 확인 가능
$ git commit -am "Msg 10"
# 새로운 버전 추가
$ git push
# 버전을 원격저장소로 추가