commit으로 버전을 만들었으나, 코드의 변화만 볼 수 있지, 과거의 프로젝트 상태로 돌아갈 순 없다.

  • 새 파일을 만들어보자. sublimeText를 켜고, 루트폴더인 opentutorials_git에 우클릭으로 [readme.md]파일을 만들어보자.
    image

  • 소스트리(버전관리)로 들어가보면, [ Log/Histroy ]탭에는 uncommitted changes가 감지되었고
    unstaged files파일에, 생성하고 수정한 readme.md파일이 감지되었다. 아이콘이 물음표인 것을 기억하자.
    image

    index.html 파일의 body태그안에 수정하고 소스트리를 보자. unstaged files에 index.html로 걸려있지만
    아이콘이 연필모양이다.
    image

    image
    이 2개 아이콘이 다른 의미는 버전관리(소스트리)에서는 다르게 인식하고 있다는 것인데,
    index.html파일의 [주황색연필]아이콘은 git에 의해 추적되고 있는 파일로서, commit으로 버전을 만들어 저장소에 보관이 가능하다.
    readme.md파일의 [보라색물음표]아이콘은 git에게 파일을 추적하고, 관리하라고 명령하기 전의 파일이다.
    - stage위로 올리고 -> [최초커밋]을 통해, 버전을 만들어야지 [git의 추적]이 시작된다.


  • 새 파일을 stage위에 올린 뒤, commit버튼을 눌러 버전을 만들자.
    이 때, commit은 stage위에 올라와있는 readme.md파일만 commit이 된다.(index.html은 안됨)
    imageimageimage

    마지막 버전확인시, [초록색+]는 이 버전에서 추가한 파일이라는 뜻이다.
    다시 uncomiited changes를 더블클릭해 돌아와보면, unstage에는 index.html만 있다.
    image



  • 이제 변화가 생겨 unstage에 감지된 index.html과 readme.md를 stage에 올리지않고 다시 수정해보자.
    index는 h1으로 큰제목의 태그를 달고, readme는 문자몇개 수정한다.
    그리고 2개를 한꺼번에 stage에 올리고, commit해보자.
    image
    하나의 버전에는 여러개의 파일의 변경사항을 모두 포괄할 수 있다.

  • 다시 2개 파일을 수정한 뒤, 각각 따로 stage에 올려서 commit하여 버전을 만들어보자
    비록 2개 파일의 변동사항이 있지만, 하나의 파일 수정사항에 대한 버전을 만들 수 있다.
    imageimage

    readme.md파일은 여전히 commit되지 않은 체, unstage에 남아있다.
    image

    unstaged와 staged 공간의 차이가 드러난다.
    -unstage : 수정된 모든 파일들의 목록이 표시되는 공간
    -stage : commit시 만들어질 버전에 합류할 파일들만 모아놓은 공간. 중간단계!
    staged라는 중간공간을 통해서 변경사항들 중에서, 필요한 or 완결된 or 연관된 파일들만 모아서 하나의 버전(commit)으로 만들 수 있다!!


[git]에서는 소스트리의
unstaged를 [workingcopy]
staged에 올리는 작업을 [add]
staged를 [index 혹은 staging area]
버전들이 표시되는 타임라인을 [repository]라고 부른다.

즉, working copy에 있는 수정된 파일들을 add해서 index 혹은 staging area에 올려놓고,
commit을 통해 하나의 버전을 만들어 repository에 저장한다.
image


  • 하나의 파일이라도, 중간단계인 staging area에 있는 상태에서, 다시 수정되면 working copy에 감지되어 올라온다.
    image

+ Recent posts