본인은 프로그래밍은 아직 취미로만 하는 수준인 프린이 개발자이다.
무엇이든 배워가는 과정 중에, 제일 오래가는 방식은 그 것을 이해하고, 체감하는 방법이기 때문에, 이번 개인적인 과제로, 프로그래밍 지식을 알기 쉽게 설명하는 프로젝트를 진행하게 되었다. 물론 이 Post는 오로지 나의 주관만으로 이루어져있기 때문에, 다른사람들이 봤을 때에도 알아먹기 좋다고 보긴 어렵다.

Git을 왜 써야 하는가?

우리는 워드작성을 할 때, 오타가 나면 "아! 실수가 났네!" 하고 자연스럽게 Ctrl+Z를 눌러서, 실행취소를 한다.
코딩도 마찬가지이다, 코딩을 계속 하면서, 앱을 업데이트 하던 중, 잡기 어려운 에러가 났을 때, 이전 버전으로 되돌아 갈 수 있다. (git history, git checkout 사용)

또한, 우리는 어마무지한 코드의 프로그램을 개발하기 위해선, 분업이 필수라고 할 수 있다. 우리는 여기서 분업을 효율적으로 하기 위해서 Git을 써야 한다.

Git 기초

기초 "무지개 떡 무지개 떡은 맛있다"

1000층 짜리 무지개떡을 만든다고 해보자,

우리는 무지개떡을 만들 때 여러명이 개인별로 분담해서 색깔 별로 하나 하나씩 떡을 쌓아갈 것이다.
여기서, 각자 쌓은 떡별로 자기가 만들었으며, 언제 만들었는지의 정보가 붙어있다.

이제 Git을 보자

프로그래밍을 하기 위해서, 여러 사람들이 분업을 해야된다,
여러사람들이 각자 맡은 코드를 github에 올리게 되는데, 각자 올린 코드마다 버전, 작성자 이름을 붙이는 거다.

github는 git으로 관리하는 프로젝트를 올려둘 수 있는 호스팅사이트이다. (github 이외에도 gitlab, bitbucket이 있다)

이렇게 여러사람들이 엄청난 규모의 프로젝트를 차곡 차곡 쌓아 올리면서 완성하게 된다.

git 동작 과정 이해하기

우리는 프로젝트 파일에 git init이란 명령어를 통해서, git 폴더로 설정해주게 되는데, 이를통해 (숨김으로) .git 폴더가 생성되어 있고, 이 폴더에 Add, Commit할 정보가 들어가게 된다.

이렇게, .git 폴더가 생성되어 있는, 컴퓨터에 있는 폴더를 Local 디렉토리라고 한다.

git에서 사용할 기본설정

git에서 사용할 저장소

  1. Working(Local) 디렉토리

Working 디렉토리에 저장되어 있는, 파일들은 git에서 가장 기본적으로 Unstaged, staged 두가지 속성을 가진다.

  • Unstaged : Add가 되지 않은 파일
  • staged : Add가 된 파일
  1. Stage 디렉토리

Working 디렉토리에 있는 파일을, Add를 통해, 맨 처음으로 git에 올리는 과정이다.
이후 Commit과정을 통해, 최종적으로 업데이트를 하게 되는데, 그 이전에 업데이트를 하기 위한 준비과정이 된다고 생각하면 된다.

  1. Commit

Add를 통해 Stage된 파일들을 이제 Commit을 통해서, 완전히 업데이트를 시키는 과정이다.
commit을 하게되면, 아래와 같이 Commit 아이디, 작성자, 날짜, 설명과 함께 업데이트가 된다.
이는 나중에 git history, git log를 통해서 commit한 내역을 볼 수 있고, 이전 과정으로 되돌릴 수 있게 된다.

$ git log --stat
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Mon Mar 17 21:52:11 2008 -0700

    changed the version number

 Rakefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 16:40:33 2008 -0700

    removed unnecessary test

 lib/simplegit.rb | 5 -----
 1 file changed, 5 deletions(-)

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 10:31:28 2008 -0700

    first commit

 README           |  6 ++++++
 Rakefile         | 23 +++++++++++++++++++++++
 lib/simplegit.rb | 25 +++++++++++++++++++++++++
 3 files changed, 54 insertions(+)
  1. Remote
    Remote는 말그대로, 인터넷을 통해, 웹상의 다른 저장소에 저장되는 원격 저장소를 의미한다.
    우리는 Origin / Master 를 흔히 듣곤 하는데,

Origin : 원격 저장소의 이름을 나타냄

Master : 기본 브랜치(branch) 이름을 말함 ( 원격 저장소 생성과 동시에 생성되는 기본(Default) 브랜치이다)

Git 이전 버전으로 되돌아가기

Commit정보에서 되돌리려는 앞자리 7자리 커밋 아이디를 기억하자.

예를 들어, 다음 커밋은 아이디가 a11bef0 이다

commit a11bef06a3f659402fe7563abf99ad00de2209e6

이후 "git checkout <커밋 아이디>"를 입력해주면 된다.

git checkout a11bef0

제일 마지막(최신) 커밋으로 돌아가기

git checkout -

원격 저장소 저장

git remote add origin https://github.com/<user_name>/<proj_name>.git

: github내 호스팅 파일에, origin이라는 원격 저장소를 지정한다.

profile
DEVELOPE_FRESHMAN

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN