모두의 깃&깃허브 라는 교재로 공부했습니다.
Version 관리에서 3가지의 용어가 중요하게 쓰입니다.
1 ) Working Directory
2 ) Stage
3 ) Repository
여기서 1) 은 실제로 코드를 수정하고 마음대로 변경하는 내 작업공간이라고 생각하면 된다.
100개의 파일이 있고, 100개의 파일을 내가 마음대로 수정한다.
내가 이제 version을 하나 찍어내야하는데, 100개의 파일 중 딱 2개만 마음에 든다면
해당 2개의 파일만 Stage 단계까지 올린다음에,
Stage 단계에 있는 파일로만 verison을 만든다.
즉 Stage는 다음 Version이 될 후보들이 올라가 있는 공간이라고 생각할 수 있다.
Stage에 있는 파일들을 바탕으로, 저장소에 Verison을 만드는 것을 "commit"한다 라고 표현도 한다.
c:\git-test 라는 저장소를 만들고, a.txt , b.txt, c.txt 3개의 text파일을 만든다.
그러면 SourceTree에 Working Directory에서 Stage에 올라가지 않은 파일이라고 3개의 txt파일을 보여준다.
모두 스테이지에 올리기 버튼을 눌러서 3개의 파일 모두 Stage로 올려준다.
Stage에 3개의 파일을 올렸고, 이 3개를 기반으로 Repository에 새로운 version을 만들어 보고자 한다.
그러기 위해서는 commit하는 과정을 거쳐야하고, 왼쪽 하단에 보면 commit 버튼이 있다.
그리고 채팅창 같은 ?? 내용을 입력할 수 있는게 있는데
commit message라고 내가 어떤걸 수정했는지, 어떤걸 삭제했는지 협업하는 사람들 혹은 나중의 내가 확인할 수 있을 만한 메세지를 남겨놓는 것이다.
위와 같이 commit message를 적고, commit버튼을 땅 누른다.
Branch가 하나 생성되고, commit message를 확인할 수 있다.
이번에는 a file을 수정하고, c file을 삭제해보겠다. 그러고 Source Tree를 다시 확인해보면
커밋하지 않은 변경사항이 확인이 되고,
stage에 올라가지 않은 파일 부분에 c가 삭제된 것과, a file이 수정되었다는 것을 눈으로 볼 수 있다.
이번에 e.txt 라는 파일을 새로 만들어 보겠다.
만드니까 이번에는 + 모양 같은 것도 아니고, ? 라는 모양이 뜬다.
git이 봤을 때는 눈여겨 보고 있던 파일, 즉 버전을 추적하고 있었던 파일이 아니라 당황스러운거다.
그래서 ? 라는 표시를 나타내고, 추적하고 있지 않는 파일 Untracked file이라고 설명한다.
그런데, git으로 버전 관리를 하고 싶지 않은 파일들이 있을수도 있다.
이 때는 .gitignore파일에 해당 파일을 추가하면된다. .gitignore 은 "무시할 파일들의 목록" 이다.
.gitignore 파일을 만들고, 해당 파일에 f.txt 을 적어둔다.
그리고 f.txt 파일을 만드는데
이 때, .gitignore은 아직 version에 추가하지는 않았지만 f.txt파일을 무시해준다.
분명 f.txt 파일도 만들었는데 .gitignore으로 인해서 무시되는 것을 확인할 수 있다.
마찬가지로 .gitignore은 폴더를 통으로 무시할 수도 있다.
만약 KKK 라는 폴더를 만들고 안에 aa.txt, bb.txt, cc.txt를 만든다고 가정하고
.gitignore에 KKK\ 를 추가해주면, KKK 폴더안에 모든 파일이 무시된다.
커다란 프로젝트들을 수 많은 commit들이 모인 프로젝트이다. Tensorflow는 10만개 , Linux 운영체제는 100만개 이상의 커밋들이 모인 초대형 프로젝트다.
이 수많은 커밋들을 어떻게 구분 할 수 있냐? 바로 commit이다. 각 commit은 고유한 Hash 값을 가진다.
커밋 쪽에 있는 긴 알파벳이 바로 Commit Hash 값이다.
Web Service를 예로 Commit들을 쭉 쌓아가면서 개발하다가 User들한테 릴리즈를 할 때
특정 commit기준으로 release를 해야한다.
이 때 해당 commit의 hash값을 기준으로 "123ljhk21hhkg123 version release합니다"
라고 말할수는 없으니, 특정 commit에 tag라는 꼬리표를 단다. "Version 1.0.0 release 합니다"
이런 식으로
원하는 Commit을 선택해서, 태그를 누른 다음 v1.0.0 이렇게 tag를 붙일 수 있는 것이다.
감사합니다 ^_^
'Programming > Git' 카테고리의 다른 글
GIT[3] : Version (1) | 2024.02.08 |
---|---|
Git[1] : Git이 무엇? (2) | 2024.02.08 |