Antilog의 개발로 쓰다
article thumbnail
반응형


Git 은?

Git

  • 컴퓨터 변경 사항 추적, 여러 사용자 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템.

Github

  • Git을 사용하는 프로젝트를 지원해주는 웹 호스팅 서버, 오픈소스로 자신의 코드를 공유할 시 서버를 무료로 제공해준다.

git을 써야하는 이유?

상황을 가정해봅시다.
만약 A,B,C 3명의 친구가 협업을 진행하기로 하였습니다.

A가 무려 아래와 같은 파일을 작성하여 10시에 서버에 올린 상태입니다.

작업.txt

- 기능 1: 달리기
- 기능 2: 점프

B는 A가 10시에 서버에 올리고 10분뒤에 해당 사실을 알지 못하고 서버에 아래와 같은 내용을 올립니다.

작업.txt

- 기능 1: 일어나기
- 기능 2: 돌아가기

C는 A의 달리기가 구현되었다는 소식에 서버에서 찾아보았지만 해당 내용을 찾을 수 없습니다.

즉, 이전에 작업한 내용이 후에 작업된 내용으로 덮어 씌워졌습니다.

이러한 문제를 git을 사용함으로 충돌을 막을 수 있습니다

바로 덮어 씌우는 것이 아닌 언제든 새로운 내용을 기록하고 문제가 생겨도 문제 발생 이전으로 돌아가는 것이 가능함!


git 의 3가지 영역 + 온라인 레포지터리, 커밋 과정으로 간단히 알아보기

git에는 Working Directory, Staging Area, .git directory인 Repository 총 3개의 영역이 있고 여기서 커맨드를 통해 온라인 Repository로 보낼 수 있습니다.
아래 설명에서는 편의상 3가지 영역과 온라인 레포지터리 모두 그림으로 나타내었습니다.

바로 설명에 앞서 예시를 들어보겠습니다.

공책에 쓴 글을 온라인에 나의 블로그에 올리는 과정을 살펴봅시다.


step 1)

공책에 글을 쓰기 위해서 공책을 준비하고 글을 작성하였습니다. 작성된 글을 text 123이라고 합시다.

step 2)

이 과정에서 작성하던 글을 잠시 저장하기 위해서 카메라로 잠시 찍어둡니다.

step 3)

계속 써서 text 124, 1212 를 더 써서 카메라로 찍어둡니다.

step 4)

카메라의 내용을 옮기기 위해서는 sd카드를 빼서 컴퓨터에 연결해야겠죠?
현재 저장한 내용은 sd카드(내컴퓨터)에 있습니다.

step 5)

이제 작성했던 글을 블로그에 올렸습니다.


 

 

 

 

놀랍게도 위에 모든 과정은 git과 git 명령어로 온라인 레포지터리에 올리는 과정을 담고있습니다. 다시 명령어와 함께 설명하면

step 1)

​공책을 준비하듯 해당 폴더를 Working Directory로 만들겠다는

$ git init


글을 쓰는 과정은 프로젝트나 모듈을 만드는 것이라고 볼 수 있습니다.

step 2)

​카메라로 찍는 과정은 깃에서 add 하는 것과 같으며 snapshot이라고 말합니다.  해당 과정은 커밋이전에 반복이 가능합니다.

$ git add <file>  // 파일을 add 한다
$ git add . //모든 파일을 add 한다

지금 현재 저장소 상태 체크하기

프로젝트 변경사항이 있나? 커밋 가능한 변경사항이 있나? 현재 무슨 상황이고 어떤 파일이 생겼지?

$ git status

step 3)

이제 sd카드(컴퓨터)로 이동했던 것처럼 commit이라는 과정을 거치게 됩니다.

$ git commit -m "commit message"

step 4)

​이번에는 컴퓨터에 있던 글을 온라인의 블로그로 올려야하니 어느 블로그인지 알려주는 git remote와 그 블로그에 올리는 git push 명령어가 실행 됩니다

$ git remote add origin <주소>
$ git push ([-u] origin master)

 

​위와 같은 과정을 거쳐 온라인 레포지터리에 해당 파일이 올라가게 됩니다.

반응형
profile

Antilog의 개발로 쓰다

@Parker_J_S

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...