개발자로 살아가기

console(흐름)

토픽 개발자로 살아가기 > GIT

1. 저장소를 생성하거나 저장소를 복제해서 작업 디렉토리(working directory)를 만든다.

로컬 저장소 만들기

git init

로컬 저장소 복제하기

git clone /로컬/저장소/경로

2. 작업할 파일을 생성한다.

파일을 추가한 후에 git status를 실행하면 아래와 같이 표시된다.

Untracked files

untracked files는 버전관리가 되지 않는 파일을 의미한다.

예제

touch index.html;
touch script.js;
git status;

실행결과

3. 파일을 스테이징 영역(staging area)에 추가(add)한다.

스 테이징 영역은 저장소에 최종적으로 반영할 소스들을 선별해두는 가상의 공간이다. git add 명령을 통해서 working directory 의 파일들이 staging 상태가 되며, stataging 상태가 된 파일들은 commit 명령을 통해서 저장소에 반영된다. staging area에 포함된 파일들은 git status 명령시에 아래와 같이 표시된다.

Changes to be commited

예제

git add index.html script.js;

실습

4. 커밋(commit)한다.

commit는 변경된 소스를 저장소에 저장하는 명령으로, staging area에 있는 파일들을 대상으로 이루어진다.

실습

git commit -m 'add files';

결과

commit 후에 git status를 하면 'nothing to commit'라고 출력되면 모든 파일이 정상적으로 저장소에 반영 되었다는 의미다.

git status;

5. 리모트 저장소에 push한다.

출처 : http://www.newthink.net/2009/09/20/simple-central-git-repository/

git push origin master

참고

공부를 하다보면 직접 커밋 상황을 만들어야 할 때가 있다. 이 때 아래의 명령을 명령줄에 입력하면 자동으로 file이라는 이름의 파일이 생성되고 여기에 숫자가 1씩 증가하면서 커밋되고 푸쉬된다. 

d=`expr $d + 1`; echo $d >> file;git add file;git commit -m "$d";git push;

댓글

댓글 본문
  1. 한참헤맸네
    VIM 빠져나올 때의 설명이 좀 미흡한 감이 있습니다. esc 를 누르고 하는 게 아니라, esc를 통해 삽입 모드에서 빠져 나온 뒤 :를 통해 밑줄로 이동해서 wq를 치는 것입니다. esc 누르면 괜히 허옇게 반짝거리기만 하지 커서가 움직이지 않습니다. 처음 하시는 분들은 괜히 헤맬수 있겠다 싶어 덧글 씁니다.
  2. 쿵더러러
    강의 잘 들었습니다 !! 감사합니다 !!
    그런데 문제가 생겼는데 질문드려요ㅠㅠ
    git remote origin라고만 쳤는데도 origin이 생겨버렸네요ㅠㅠ 그런데 삭제를 해도 삭제되지가 않아요..
    어떻게 해야하는지.. 답변 부탁드려요 ~
  3. 미더덕
    감사합니다.
    대화보기
    • egoing
      어느쪽이건 상관은 없습니다. commit 전에 track 상태만 되면 되기 때문이죠.
      대화보기
      • 오방떡
        강의 잘 듣고 있습니다. 질문이 있습니다.
        작업할 때에
        1)화일을 수정한 뒤에 -> add -> commit 하는 것인가요?
        아니면
        2) 수정하기 전에 해당 화일을 add하고 -> 화일을 수정한 뒤에 -> commit하는 것인가요?
        동영상에서는 전자로 작업하셨는데, 개념적으로는 add를 해야 tracked 상태가 되기 때문에 후자처럼 작업해야 할 듯 해서요.
      • manorgass
        git commit -m 명령어를 사용하여 commit 시도 시
        **** Please tell me who you are.
        Run
        git config --global user.email "you@example.com"git config --global user.name "Your Name"
        to set your account's default identity.Omit --global to set the identity only in this repository.
        fatal: unable to auto-detect email address <got `xxx.<none="">`>
        과 같은 형태의 문자가 출력되고 commit이 되지 않는다면 Run 아래의 명령어를 통해서 이메일 주소와 사용자 이름을 명시해줘야합니다. 어떤 사용자가 commit을 했는지 구분하기 위한 절차입니다.</got>