본문 바로가기

블로그/기타

[Git] init - add - commit - log

- Git은 버전 관리 시스템 (Version Control System) 중 하나의 제품임

예전에, Report_final_final_final.xlsx 등 파일에 이름을 계속 저장하면서 최종본을 만들어 왔다면, 파일의 이름을 언제나 Report.xlsx로 유지하면서, 파일의 내용에 대한 변경 사항은 컴퓨터가 관리가 하는 것

 

- 이러한 파일의 변경사항 트래킹 이외에도  Backup, Recovery, Collaboration에 대한 방식을 제공

소스 코드를 관리하여 Backup 하는 것, 이전 버전을 손 쉽게 복원하는 Recovery, 그리고 다른 사람과 같은 소스코드를 바탕으로 협업을 하는 방식을 제시함

 

- 본질적인 요소가 존재하며(변경사항을 관리), 혁신적인 요소(기존의 CVS, SVN을 뛰어넘을 수 있는 방식) 

GIT이라고 하는 버전 관리 시스템은 매우 어렵다. 새로운 기능을 추가하는 상태에서 GIT을 매우 어렵게 만들었음. 현실적으로 보았을 때, 프로그래밍에 익숙하지 않거나, 

 

- GIT을 공부하는 것이 아무리 어렵더라도, 현실의 코드 복잡도는 더욱 복잡하기 때문에, Google drive나 Dropbox가 복잡한 프로젝트를 관리하기 어려워지고, GIT이 이를 조금 쉽게 만들어준다.

- 반면에, 매우 간단한 코드를 GIT을 바탕으로 관리하고자 한다면 해당 프로젝트를 매우 어렵게 만든다. 따라서, 자신이 어떤 상황에 따라 Google drive나 Dropbox가 더 적당할 수 있음.

 

아래 코드는 [Window GIT] 기준으로 정리 (기본적인 mkdir 등은 안 적음)

버전 관리를 시작해보자.

실습할 폴더를 만들고(gitfth), 버전 관리를 하는 파일을 GIT에게 알려줘야 함.

 

1. git 입력

 

2. Start a working area~ 라인을 확인

clone과 init이 존재 -> 그 중에서 init은 현재 디렉토리에다가 내가 작업을 진행하겠다라고 GIT에게 알려주는 기능

git init을 입력하면 .git이라는 디렉토리에다가 git의 저장소를 초기화했다라고 나오며, ls -al를 통해 현재 디렉토리의 파일 목록을 확인해보면 .git이 생겼다라는 것을 확인할 수 있으며 버전 관리를 하면 여러가지 버전이 저장이되는데, 이러한 요소가 .git에 저장되며 이를 제거하게 된다면 버전에 대한 정보가 제거되게 된다.

 

파일을 생성해서, 해당 파일이 버전 관리 되는 예시를 확인해보자.

f1.txt라는 파일을 만들고, 이것을 수정해보자.

알파벳 i를 눌러 INSERT 모드로 변경하여, 아무거나 입력해서 저장해본다.

 

3. git status + git add

f1.txt라는 파일을 만들고, souce : 1를 입력하고 저장해봤다. 이후 status를 입력해보면 f1.txt 파일은 버전 관리가 되고 있는 디렉토리인 gitfth안에 존재하지만 해당 파일을 버전관리를 시작하라고 명령가지 까지 GIT은 이를 무시한다. 따라서, GIT에게 이를 관리하라고 명령해야한다. 이것이 git add이다.

 

Git add 이후, Status를 확인한다면, new file이라는 것으로 변경되었다.

(commit에서 -a 명령어를 주면, add가 필요 없이 file을 stage로 넘길 수 있음 -commit help 매뉴얼 참고)

 

즉, 요약하면 git으로 관리하고자 하는 파일을 명확하게 git에게 알려줘야 한다. 

 

4. (git config --global user.name XXXX)

- 버전(version)은 무엇인가? 버전은 의미있는 변화를 뜻한다. 어떠한 로직을 구현하였는데, 작업하다가 만 소스코드는 버전이라고 할 수 없다. 어떤 작업이 있으면, 해당 작업이 완결된 상태가 버전이다. 좋은 버전의 단위가 무엇인가?는 정답이 있는 문제는 아니다. 

 

다른 사람이 봤을 때, 누가 어떠한 작업을 했는지 파악하기 위해서 아래를 입력하자 (한 번만 입력하면 됩니다)

(git config --global user.name XXXX)

(git config --global user.email XXXX@xxxx.com)

 

 

5. commit 

version의 메세지를 작성하자. 이 파일들이 왜 변경되었는지, 어떠한 부분이 바뀌었는지를 입력하는 것이 버전 메세지 또는 commit 메세지라고 한다. (여기서 1로 입력하고, :wq 로 빠져 나옴)

(당연히 git commit -m으로 에디터를 켜지 않고, 인라인에서 커맨드를 활용할 수 있음)

 

6. git log

버전이 잘 저장되었는지 확인하기 위해 입력해본다.

Wrap-up

: f1.txt를 변경하여, 변경사항을 트래킹해보자.

 

(1) vim f1.txt로 souce : 1 을 souce : 2로 변경하고, 저장하여 빠져나온다.

(2) git status를 통해 파일의 변경을 확인한다.

 

(3)바로 git commit하면 안되며, f1.txt를 git add f1.txt를 통해 다시 버전 관리 시스템에 add를 시켜줘야 한다.

GIT에서 어떤 새로운 파일이 생겼을 때, 그 파일에 대한 버전 관리를 GIT에게 명령할 때도 우리는 add를 사용한다. 이미 버전 관리가 되어 있는 파일(여기서 f1)에서 수정사항이 발생했을 때도, add를 시킴.

 

(4) git commit : commit 메세지로 2 입력하고 빠져 나오기

 

(5) git log로 확인

 

'블로그 > 기타' 카테고리의 다른 글

[YAML] 기본 문법  (0) 2024.01.17
[Git] 3 way merge  (1) 2024.01.10
[Git] git stage area + log + diff + reset  (2) 2024.01.08