파일을 변경했을 때 이를 버전으로 관리함.
Git에서 version이 저장되는 곳:Repository
.git -> Repository
Working tree: 파일을 만들고 수정. 아직 버전으로 만들어지기 전 단계.
Staging Area: 파일이 10개일 때. 파일 딱 2개만 하나의 버전으로 만들고 싶을 때, staging area에 그 파일 2개를 올려놓음.
Repo: 만들어진 버전(버전들의 집합). Repository의 약어고 앞으로 Repo라고 부른다.
이 때 nano라는 편집 프로그램을 사용한다. 처음 사용하는거라 천천히 진행해보려고 한다.
nano hello1.txt
내용 입력 후, Ctrl + x로 나가기.
cat hello1.txt
현재 파일의 내용을 볼 수 있음. 저장한 1이 보임.
git status
: 현재 파일들의 상태를 git의 관점에서 보여준다. 매우 중요한 명령어.
아까 새롭게 생성한 hello1.txt가 보인다.
No commit yet. commit == version.
Untracked files. 추적되지 않는 파일들. 깃은 명시적으로 이 파일을 관리할꺼야
라고 말을 해줘야지 관리 시작함. 아니면 없는 파일로 취급. 현재 hello1.txt는 없는 파일로 취급
아직 깃에게 얘 관리해 라고 안했기 때문.
버전으로 만들기 위해선 이 hello1.txt를 staging area로 올려야 한다.
이 때 사용하는 명령어가 git add hello1.txt
이다.
이제 버전관리 할꺼니까 staging area에 올려.
다시 git status
로 확인하면,
Changes to be committed, 즉 커밋될 준비가 된, staging area로 hello1.txt가 올라온 것을 볼 수 있다.
깃에게 버전을 만들라고 했을 때 깃은 staging area에 올라온 애들을 가지고 버전을 만든다.
git commit
을 치면 에디터가 뜨는데, 추가로 git commit -m "Message 1"
바로 명령어로 커밋 멘트를 쓸 수 있다.
commit에 성공하였고 이 commit은 Repo로 간다.
git status
를 치면
커밋할 것이 없다고 한다. 버전이 되지 않은 수정사항이 없다. 버전으로 만들 것 (staging area)도 없다.
git log
를 치면, 그간 commit 기록을 볼 수있다. 일종의 이 깃의 역사이다.
버전에 대한 설명과 함께 버전의 고유한 아이디 값이 뜬다.
나갈 땐 q 버튼을 누른다.
hello1.txt를 nano 편집기를 사용해 수정하였다.
1 -> 1,2로 수정
git status
staging area에 있지 않은 파일 hello1.txt가 있다고 한다. git add
를 한다.
nano 생성,편집 -> status 확인 -> add -> commit -> status 확인 -> log 확인
git commit -m "Message"