한번쯤 회사에서 문서를 작성하다 보면 완성됐다 할지라도 수정사항이 꼭 발생하기 마련인데 그때 마다 기존의 문서를 지우는 게 아니라 다른 이름으로 저장해본 경험은 누구나 있을 것이다. 그게 꼭 회사가 아니더라도 말이다. 이전의 문서가 더 나았거나, 혹은 어디를 수정했는지 확인하기 위해서 필요한 이 기록들은 개발 환경에서도 똑같이 필요한데 이번에 새로 배우게 된 깃(git)이 바로 그러한 역할을 해준다.

 

   본격적으로 깃 허브에 입문하기에 앞서 깃이란 구체적으로 무엇인지, 어떤 방식으로 동작하는지, 필요한 이유는 무엇인지에 대한 것을 알기위해 깃 배쉬(Git Bash) 프로그램을 활용해 동작 방식을 살펴보게 되었다.

 

   1. 깃 저장소 만들기   

   말 그대로 파일이 수정된 기록(history)을 남기려면 이를 저장할 보관소가 필요하다.

 

User@USER-UBADO699SH MINGW64 ~ 물결(~) 표시는 현재 위치를 나타낸다.
상대 경로를 기준으로 하고 있다.
$ cd ~/tistory_up cd는 폴더를 바꾸기 위해 사용되는 명령어다.
현재 위치에서 tistory_up 폴더로 이동한다.
$ ls -al ls 명령어는 현재 위치에 있는 파일과 폴더 리스트를 보여준다.
마이너스(-) 연산자 뒤에 오는 것은 해당 명령어의 속성을 나타낸다.
여기서 -al는 숨겨진 파일과 폴더 및 상세정보를 나타내게 한다.
(생략) Sep 30 17:51 ./
(생략) Sep 30 17:51 ../
온점 한 개(./)는 현재 위치, 온점 두 개(../)는 상위 폴더를 나타낸다.
$ git init History를 남길 깃의 저장소를 해당 폴더에 생성한다.
.git 폴더가 생성되며, 기본적으로 숨김처리가 되어있다.
~/tisutory_up (main) 깃이 생성되며 main 브랜치로 지정된 상태다. 앞으로 해당 위치에 새로운 파일이 나타나면 이를 감지하거나 파일의 변동사항을 추적하여 명령어를 통해 사용자에게 알려줄 수 있다.
.git History가 작성될 폴더가 생겼다.
숨김처리가 된 파일이나 폴더 앞에는 온점이 붙는다.

 

 

 

   2. 버전 만들기   

   파일을 수정하고 저장할 때마다 기록을 남기고 저장하게 되는데 그 때마다 수정된 최종안이 최신 버전이 된다.

 

$ git status 깃의 상태를 확인할 수 있다.
On branch main 현재 main 브랜치에 위치하고 있음을 나타낸다.
No commits yet 아직 커밋(버전 만들기)을 진행 할 파일이 없음을 나타낸다.
파일은 스테이징 상태가 되어야 커밋을 진행할 수 있다.
즉, 스테이지에 올라온 파일이 없다는 뜻이다.
Untracked files : track상태가 아닌 파일이 존재함을 나타낸다.
(track 상태 : 깃이 파일을 추적하고 있음을 나타냄)
$ git add text1.txt track 상태로 만들기 위해 commit을 진행해야 한다. 고로 작업트리에서
스테이지로 옮겨주기 위해 add 명령어를 사용하여 Untracked 상태인 파일을 스테이지로 이동시킨다.
Changes to be committed : 스테이지에 파일을 추가하자 Untracked 상태에서 track 상태로 바뀌며
commit 할 준비가 되었음을 알려준다.
$ git commit -m "ver.1" commit을 통해 해당 파일의 버전을 생성한다.
-m은 메세지를 나타내며 큰따옴표 내에 작글을 주석처럼 쓸 수 있다.
$ git log commit이 진행된 파일의 History를 확인할 수 있다.
현재 한 번의 commit을 진행했기 때문에 하나의 내용만 존재한다.

 

 

 

   2-1. 버전 만들기 (스테이징과 커밋 한꺼번에 처리하기)   

 

modififed : track상태인 파일의 변경 사항이 감지되었다는 뜻이다.
이는 새 버전을 만들어야 하므로 다시 스테이징 - 커밋 과정을 거쳐야 한다.
$ git diff 커밋을 진행하기 전 파일의 변동 사항을 살펴볼 수 있다.
$ git commit -am "ver.2" 한번 track상태가 된 파일은 add - commit 과정을 commit 명령어 하나로
실행할 수 있다. 속성 -a(add)m(messege) 를 통해 스테이징 - 커밋을
동시에 처리할 수 있다.
(HEAD -> main) HEAD는 최신 버전을 나타낸다, 즉 main 브랜치의 최신 버전은 ver.2가 된다.

 

+ Recent posts