코딩응애의 개발블로그

생활코딩 (Git CLI - 버전관리) 본문

git & github

생활코딩 (Git CLI - 버전관리)

이너멜 2021. 12. 30. 14:10

깃의 3대 목적 버전관리 백업 협업 그중 버전관리에 대해 알아보는 수업입니다. 

버전관리의 시작 

git에게 이제부터 이 디렉토리를 버전관리 하기 시작해! 라고 이야기 할때는 git init . 해주면 된다. 

init은 초기화란 뜻이고 . 은 현재 디렉토리를 git에게 버전관리를 시킨다는 의미이다. 이렇게 해주면 .git 이라는 디렉토리가 생기는데 이 디렉토리 안에는 여러 파일과 디렉토리가 있는데 여기에 여러가지 버전 정보들이 각자 역할에 따라 디렉토리 파일에 저장이 될것이다. 

버전 만들기

우리가 할일은 파일을 변경했을때 변경사항들을 버전으로 만들어서 관리하는것이다. 

Repository(저장소) - 버전이 저장되는 곳.  만들어진 버전 

Working tree - 파일을 만들고 수정하고 할텐데 이 파일들이 아직 버전으로 만들어지기 전단계. 수정한 파일들 

Staging Area -  예를 들어서 파일 10개중 2개만 하나의 버전으로 만들고 싶을때 그때 Staging Area 곳에 올려놓는다.

버전을 만들려고 하는 파일들  

git status -> git에게 지금 니 상태가 어때 라고 물어보는것 

No commits yet -> 아직 버전이 없다는 뜻 

Untracked files -> 추적되지 않고 있는 파일. git은 명시적으로 이 파일을 버전관리 할거야 라고 한번 알려줘야 한다.

안그러면 git은 그 파일을 없는 파일로 취급한다. 그런 파일들이 Untracked 상태  

git add 파일명 - > 파일을 버전으로 만들기 위해 Staging Area에 올려야 하는데 그때 사용하는 명령어

Changes to be committed -> 변경된 파일들이 git 한테 버전 만들라고 했을때 committed 가 되는것이다. 버전이 될 파일들의 목록을 보여준다.  초록색 글씨로 표시한다.

git commit -m "커밋 메세지" -> 버전을 만들라는 뜻 버전이 생성이 된다. 

git log -> 버전이 잘 만들어 졌는지 확인하고 싶을때 

정리하자면 

Working tree에 수정한 내용들이 들어 있고 수정한 내용들 중에서 버전을 만들고 싶은걸 골라서 Staging Area에 올리고

Staging Area에서 커밋을 하면 변경사항들이 Repository에 온다.

여러개의 파일을 하나의 버전으로 만들기 

git log --stat -> 각각의 버전마다 어떤 파일들이 있는지 알수 없을때 사용하는 명령어 

버전간의 차이점 비교

git diff -> 우리에게 차이점을 보여준다. 버전을 만들기전 마지막으로 검토를 할 수있다.

git log -p -> 아주 복잡한 코드를 가지고 있는 상황이라면 코드상에서 문제가 생겼을때 어디에서 문제가 생겼는지를 추적하는데 큰 도움이 된다.

checkout과 시간여행

git checkout 커밋 아이디 -> 원하는 버전의 상태로 돌아가고 싶다면 HEAD를 되돌리고 싶은 버전에 커밋아이디로 이동시키면 된다.  지워진거는 아니다. 

git checkout master -> 다시 가장 최신이 있던 상태로 돌아가고 싶을때 사용하는 명령어이다.

보충수업

git add . -> add를 할때 파일명을 하나하나 직접 지정해도 좋지만 .(점)을 써주면 현재 디렉토리 밑에 있는 모든 파일을 add 한다라는 뜻이다.

git commit -am "커밋 메세지" -> add하고 커밋하는거 까지 한번에 할 수가 있다. 단 최초 한번은 add를 해서 tracked 상태가 되어야  동시에 하는걸 할수 있다 

git commit -> 기본 에디터가 뜨고 거기서 커밋 메세지를 여러줄을 좀더 편리하게 작성할 수 있다.

삭제

git reset --hard 커밋 아이디 -> 원하는 버전으로 리셋을 한다는 의미는 그 버전을 삭제한다는것이 아니라 그 버전이 되겠다라는 의미이다. 리셋뒤에 --hard 가 있는데 소위 모드라고 부른다. 이정도만 이해하라고 하심..

되돌리기

※ 나중에 다시 듣고 하기 이해하기 힘들다고 함 

 

'git & github' 카테고리의 다른 글

생활코딩 - (GIT CLI - Backup)  (0) 2022.01.04
생활코딩 vscode로 배우는 git - 버전관리 편  (0) 2021.12.27
Comments