Git 사용법

git directory 생성 및 commit 방법

 

1. 버전관리를 할 디렉토리를 만들어준다.

mkdir 명령어를 사용해서 디렉토리를 생성한 다음 해당 디렉토리로 이동한다.

 

2. git init 명령어를 사용해서 버전관리를 시작

git 명령어를 입력하면 사용할 수 있는 git 명령어 목록을 보여준다.

 

여기서 start a working area의 git init을 사용하여 현재 디렉토리를 Git으로 버전 관리 할 수 있다.

git clone은 github의 주소를 입력하여 해당 저장소의 데이터를 가져오는 것이다.

 

git init을 하면 오른쪽에 표시가 생겨 git을 사용하는 디렉토리임을 알 수 있다.

 

 

3. git config --global user.name, user.email로 누가 커밋했는지 알리기 위해 나의 정보를 세팅한다.

사용자 정보를 설정한 후 cat ~/.gitconfig를 통해 유저 정보가 잘 저장됐는지 확인할 수 있다.

 

 

 

4. 파일을 생성하고 난 후 git add 명령을 통해 해당 파일을 스테이지에 추가

파일 생성 후 ?1이라는 숫자가 생겼다.

git status로 현재 상태를 조회해보니 untracked files: 라는 메세지가 떴다.

untracked files란 말 그대로 파일이 추적되지 않고있다는 뜻이다.

git add 명령어를 통해 stage에 추가한 뒤 git status로 확인해보면 commit 할 수 있다고 뜬다.

처음 올린 파일은 untracked 상태이고 한번이라도 버전관리가 된 파일은 tracked이지만 수정 후 modified상태가 된다.

그렇기 때문에 add를 통해 stage에 올려서 staged 상태로 만들어줘야 커밋을 할 수 있다.

 

stage: 변경 파일들 중 내가 원하는 파일만 repository에 저장하기 위한 중간 영역.

repository: commit한 내용들이 저장되는  = 저장소.

 

 

5. git commit 명령어로 commit 페이지에 들어가서 commit 메세지를 작성해준다.

commit message를 작성해주면 이런 메세지가 뜬다.

+ git commit -m "commit message" 를 통해서 한번에 commit과 commit message를 작성할 수 있다.

-am 명령어를 사용하면 stage에 없는 파일도 commit된다.

 

이후 git log 명령어를 통해 내역을 확인할 수 있다.

이 화면에서 q를 누르면 나갈 수 있다.

커밋이 되고나면 main branch에 commit할 것이 없다고 나온다.

 

 

+. stage 이해를 돕기위한 예시

만약 이런 식으로 변경 파일이 2개가 있을 때 내가 test2.txt만 커밋하고 싶다면?

이렇게 원하는 파일만 git add 명령어를 통해 스테이지에 등록할 수 있다.

커밋을 하면 스테이지에 추가했던 파일을 커밋되고, 추가하지 않은 파일은 그대로 남아있는 것을 볼 수 있다.

 

6-1. 변경사항 확인하는법 ( git log -p )

git log -p 옵션을 사용하면 source 변경 사항을 볼 수 있다.

commit id를 사용하면 해당 커밋 이전의 메세지만 볼 수 있다. ex) git log 44ea7e345345sdg453

 

6-2. 변경사항 확인하는법 ( git diff)

두 커밋 사이의 변경사항을 확인하는 방법: git diff commit_id1..commitId2

파일 수정 후 "git diff"를 사용하면 방금 수정한 파일과 그 이전 파일의 변경사항을 볼 수 있다.

 

6-3. git log 조회 시 파일 정보까지 함께 보는 방법 (git log --stat)

git log --stat 옵션을 사용하면 이런식으로 변경된 파일 명을 함께 볼 수 있다.

 

+ git log graph로 보는 법

git log --oneline --graph --all --decorate

 

 

7. 버전관리 대상 제외 ( .gitignore )

버전 관리중인 디렉터리 안에 버전 관리를 하지않을 특정 파일이 있다면 

.gitignore 파일을 생성해서 목록을 지정할 수 있다.

  • .swp : .swp 확장자를 사용하는 모든 파일 제외
  • temp/ : temp 디렉터리 제외
  • hello.txt : hello.txt 파일 제외

.gitignore 파일을 추가한 뒤 hello.txt를 추가했지만 git status에 아무것도 뜨지않는 것을 볼 수 있다.

'DevOps > 협업' 카테고리의 다른 글

브랜치 전략  (0) 2023.09.08
[Github] git upstream 연결  (0) 2023.07.20
GIT reset : merge 전으로 reset하는 방법  (0) 2023.03.30