한번쯤 회사에서 문서를 작성하다 보면 완성됐다 할지라도 수정사항이 꼭 발생하기 마련인데 그때 마다 기존의 문서를 지우는 게 아니라 다른 이름으로 저장해본 경험은 누구나 있을 것이다. 그게 꼭 회사가 아니더라도 말이다. 이전의 문서가 더 나았거나, 혹은 어디를 수정했는지 확인하기 위해서 필요한 이 기록들은 개발 환경에서도 똑같이 필요한데 이번에 새로 배우게 된 깃(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가 된다. |
'아이티에듀넷' 카테고리의 다른 글
2024-10-02 :: 048 깃허브 (0) | 2024.10.02 |
---|---|
2024-10-01 :: 047 깃 시작하기 ② (2) | 2024.10.01 |
2024-09-27 :: 045 프로그래머스 기초 문제 (0) | 2024.09.27 |
2024-09-26 :: 044 네트워크 (0) | 2024.09.26 |
2024-09-25 :: 043 스레드와 IO (0) | 2024.09.25 |