2015년 1월 25일 일요일

Git 시작하기 3 - commit

목차


git commit 명령어

global 설정

추적도 되었겠다. 이제 백업만 하면 된다
그것을 해주는 명령어가 바로 git commit 이 되시겠다

일단 git commit을 쳐보자

그럼 git가 넌 누구냐 (-ㅅ- om
라고 강렬하게 물어온다

*** 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

그렇다. git을 사용하기 위해선 이름과 이메일을 기입해야한다
이유는 원래 git는 혼자서 가계부 만들려고 존재하는게 아니라
여러명을 대상으로 한다.
그리고 세상일이 그렇듯 여러사람이 작업하면 산으로 가는일이 많다
A가 수정하고 B가 수정하고 이러다가 어느날 갑자기 패망했을때
팀장이 길길이 날뛰며 ‘어떤 새끼가 이거 마지막에 수정했어?!?’
라고 한다면.. 사건은 미궁에 빠지고 김전일이 필요하게 된다

그래서 git는 누군가가 commit을 실행할때 반드시 그 정보를 기록한다
거기에 같은 팀이 아니라면 이름만 적어놓으면 또 찾기가 힘들다
email 주소는 그걸 위해 존재하는 것이다

근데 매번 commit때마다 그것을 적어주는 것은 너무 귀찮으므로
미리 설정파일에다가 설정해주면 일단 자기컴에선 항상 그 정보가 쓰이게된다

Run (이봐 실행해봐 라는 뜻-ㅅ-; 아래껄..)

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

잠깐 앞에의 오류메세지를 살펴보자 git가 얼마나 친절하고 착한지 알 수 있다
오류메세지뿐만 아니라 각종 status로 보거나 다른 명령어 치거나 할때마다
조언을 해준다. 문제는 영어라서 아무도 자세히 읽어보지 않는다는데 있지

저기 조대로 쳐주면 된다.

git commit -m

이제 정말 백업 준비완료
하지만 git commit만 치면 vi라는
초보자에겐 악몽과도 같은 편집기가 열린다

commit 했을때 백업이 되는데.. 백업할때 파일 이름 안짓고
백업하는 사람은 없을것이다
그것과 마찬가지로 메세지를 적어준다. 단, 파일 이름 적을때보다
훨씬 자세하고 알기 쉽게 적을 수 있는데
그런걸 하라고
git가 지딴엔 친절하게 메모장 같은 걸 열어주는 것이다
하지만 오지랖이 넓으면 오지랖퍼가 되는 법!
이 vi라는 편집기가 git보다 더 어렵다 (익히면 좋긴하다..)

그래서 우리는 어차피 쓸것도 그닥 없으니까

git commit -m “시작함다”

라고 해보자. -m은 message의 약자다.
물론 빼기 하나 더 붙여서 --message 하고 싶으면 해도된다
그리고 뒤의 "따옴표 안의 것이 자신이 백업할때 적고 싶은 정보다

이제 git status를 다시 쳐보면 아무것도 안나올 것이다
그 말은 현재 백업버전이 최신이라 아무것도 백업할 필요가 없다는 것을 의미한다

git add의 비밀과 git의 3단계 시스템

자 이번엔 AV list 파일에 파란 하늘을 새로 기입하였다
파일을 저장하면 파일이 변경되었음을 알려준다

git커밋

오호라~ 잘 추적하는구나
하면서 git commit -m "하늘이 푸르구나" 로 다시 백업을 시도한다
근데..

위랑 거의 동일한 메세지가 나오며 백업이 전혀 작동하지 않는다

그 이유는 git 시작하기 1에서 나왔던 add 명령어가
가진 출생의 비밀때문이다

얘가 사실은 추적에 등록하는 것 외에 또하나의 역할이 있는데
그것은 commit시 백업될 애들을 명단에 추가하는 것이다
무슨 명단?
그것을 알려면 이전에 잠깐 언급한 3단계 시스템을 이해해야한다
쉽게 말하면

일반인-> 오디션 -> 연예인
작업디렉토리 -> stage area(index) -> Head (committed)

이렇게 보면 된다-ㅅ-;;;
연예인이 될려면 일반인에서 일단 오디션에 뽑혀야한다
마찬가지로 백업이 될려면 일단 백업할 명단에 추가해야만 한다

왜 그냥 백업하지 않고 한단계 더 단계를 추가했을까?

그 이유는 여러가지가 있지만 일단 지금은 편리성과
좀더 정리된 commit을 위한 장치.. 라고 정도만 알고 있자

실제로 지금은 몰라도 전혀 상관없다
또한 우린 그것을 건너뛸 예정이다.

git commit -am

위의 3단계 때문에 우린 비록 추적하고 있는 파일이라고 해도
git add를 해주지 않으면 그 파일을 백업할 수가 없다

그럼 매번 git addgit commit 해야하나

그런 것을 쉽게 하기위해 우린 또 옵션을 사용할 수 있다
바로
git commit -a -m "설명"
-a 옵션이다
이 옵션을 추가하면 add 필요없이 무조건 수정한 모든 파일을
commit 해준다

이제는 그냥 수정후 백업하고 싶을때
저 명령어로 한번에 해결할 수 있을 것이다
저걸 더욱 쉽게 할려면
git commit -am "설명"
처럼 아예 연속적으로 붙여버릴 수도 있다.

다음편은 백업을 했으니 일이 잘못되었을때 복구할 방법을 보겠다

Written with StackEdit.

댓글 3개 :

  1. 깃 시작하기 다음 글은 언제 나오나요? 설명이 정말 잼있어서 이해도 잘되고 제가 잘 배워서 후배들에게도 잘 가르쳐 줄 수 있을 거 같습니다. 정말 글 잘보고 있습니다^^

    답글삭제
    답글
    1. 감사합니다. 게을러터져서 1년반동안 방치해놨었는데 5-6편까진 갈 수 있도록 써보겠습니다. 물론 기약은 없습니다-ㅅ-;

      삭제
    2. 감사합니다. 게을러터져서 1년반동안 방치해놨었는데 5-6편까진 갈 수 있도록 써보겠습니다. 물론 기약은 없습니다-ㅅ-;

      삭제