개발 관련 지식/GIT

[GIT] 생활코딩, GIT 1

코딩하는 문과생 2019. 12. 13. 16:14

[수업 소개]

From 리눅스 관리를 위해 탄생

그러나 수많은 소스코드가 git을 통해 관리되고 있다.

버전관리 시스템 GIT

 

  • 많은 사람들이 동시에 하나의 프로젝트를 관리할 때 그 효과가 발휘된다. 

 

[GIT의 목적]

앞에 것을 모르면 뒤에 것을 모른다.

  1. 버전관리
  2. 백업
  3. 협업

 

[버전관리]

우리는 가끔 이전 파일로 돌아가고 싶을 때가 있다. 

그리고 버전마다 언제 수정했고, 설명을 부여하고 싶다.

파일을 수십개 작업할 때도 있다. 

 

<용어>

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
# 버전을 원격저장소로 추가