전성빈의 사리사욕
[git 첫 걸음] git 기초 사용법 본문
깃은 파일의 변경 내용을 추적하는 것이다.
깃은 폴더의 어떠한 파일이라도 모두 추적할 수 있다.
CLI 환경에서 사용하는 git 기초사용법
1. local에서 git 사용
- 사용자 설정
- 초기화
- 스테이징
- 커밋
- 로그
- 브랜치
- 헤드
사용자 설정
깃을 설치하고 나서 가장 먼저 해야할 일은 사용자 이름과 이메일 주소를 설정하는 것이다.
커밋을 할 때마다 이 정보를 사용하는데 한 번 커밋한 후에는 정보를 변경할 수 없다.
git config --global user.name "name"
git config --global user.email "email_address"
git config --list //설정한 모든것을 확인할 수 있다.
--global 옵션을 통해 글로벌로 저장하면 모든 프로젝트에 동일한 정보가 적용된다.
프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶다면 --global 옵션을 빼고 실행하면 된다.
초기화
깃을 사용하길 원하는 폴더로 이동해 깃을 초기화 시켜주자.
$ git init
.git 이라는 이름을 가진 숨겨진 폴더가 하나 생긴다. 이를 저장소라고 하는데 깃은 폴더의 모든 변경 내용을 이곳에 저장한다. .git이 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없다.
스테이징
깃이 파일의 변경 내역을 저장하지만 폴더에 존재하는 모든 파일의 변경을 추적하는 것은 아니다.
저장하기 전에 "스테이징"이라는 단계를 거친다. 스테이징은 저장하고 싶은 부분만 선택해 임시로 저장하는 것이다.
코드를 수정하는 등 파일을 변경하였으면 일단 깃의 상태를 보자.
$ git status
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
test.txt가 추적 되지 않음을 나타낸다.
test.txt파일을 추적하기 위해서는 변경된 파일을 선택하거나 폴더의 전체 변경 사항을 지정할 수 있다.
간단한 메모나 테스트를 위한 파일은 굳이 깃에 저장 할 필요가 없기 때문에 항상 전체 지정을 할 필요는 없다.
git add test.txt // 파일 선택
git add . //폴더의 전체 변경 사항 지정
스테이징 된 파일은 추적이 되며 커밋 직전의 상태로 변경된다.
$ git status
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test.txt
커밋
깃이 폴더의 변경 내용을 저장하는 단위를 "커밋(commit)"이라고 합니다. 커밋을 하기 위해서는 먼저 스테이지 상태에 두어야만 커밋을 만들 수 있습니다.
커밋을 하면 기본 에디터가 열리며 변경 내용을 기록할 수 있는 화면이 나옵니다. 텍스트를 입력하고 저장하면 커밋이 생성됩니다.
-m 옵션을 사용하면 에디터를 열지않고 터미널에서 바로 메세지를 입력할 수 있습니다.
-a 옵션을 사용하면 트래킹이 되는 파일중 스테이징을 하지 않은 파일을 스테이징과 동시에 커밋을 할 수 있게 합니다.
--amend 옵션을 사용하면 현재 변경사항을 이전 커밋에 저장할 수 있습니다.
git commit
git commit -m "커밋 메세지"
git commit --amend //현재 변경사항을 이전 커밋에 추가한다.
로그
스테이징을 거쳐 커밋한 결과를 log 형식으로 확인할 수 있다.
$ git log
commit 22189071fc4a42889cf748dfeda9dbaec6407b04 (HEAD -> master)
Author: <user.name> <email_address>
Date : Sun Nov 22 17:06:51 2020 +0000
"git message"
커밋의 내용을 보기 위해서는 git show 명령어를 사용해야한다.
git show //현재 브랜치의 가장 최근 커밋 정보를 확인한다.
git show <커밋 해쉬값> //커밋 해쉬를 입력하여 특정 커밋을 볼 수 있다.
브랜치
브랜치는 커밋 사이를 가볍게 이동할 수 있는 포인터 같은 것입니다.
브랜치란 독립된 개발을 위해서 생긴 개념입니다. 브랜치를 생성 하면 현재 작업의 분기점을 만들어 독립적인 작업 공간을 만듭니다.
깃은 기본적으로 master라는 이름의 브랜치를 가지고 있습니다. branch 명령어를 통해 확인 할 수 있습니다.
git branch
* branch // *표시는 현재 작업중인 브랜치를 의미합니다.
지금 하고 있는 작업에서 독립된 작업을 하고 싶을때 브랜치를 생성합니다.
git branch <새로 생성할 브랜치> <현재 브랜치>
$ git branch branchtest master
$ git branch
branchtest
* master
branchtest 브랜치를 생성하였는데 현재 작업중인 브랜치는 변경되지 않아 아직 master입니다.
현재 작업 중인 브랜치를 바꾸고 싶다면 "checkout"명령을 사용합니다.
$ git checkout branchtest
Switched to branch 'branchtest'
$ git branch
* branchtest
master
브랜치를 생성과 동시에 선택을 하고 싶다면 checkout 명령에 -b 옵션을 사용합니다.
$ git checkout -b helloworld
Switched to a new branch 'helloworld'
브랜치에서 개발을 하며 커밋들을 만들고나서 작업을 끝내면 메인 작업에 반영합니다.
이것을 병합(merge)라고 부릅니다.
$ git checkout master
$ git merge branchtest
헤드
헤드란 현재 작업 중인 브랜치를 가르키는 포인터입니다.
git log 명령을 통해 HEAD를 확인할 수 있습니다.
$ git log --oneline
e8cc5ec (HEAD -> helloworld) "commit message"
출처 : jeonghwan-kim.github.io/dev/2020/02/10/git-usage.html
'백엔드 로드맵따라가기 > 버전 관리' 카테고리의 다른 글
[git 첫 걸음] git의 기초 사용법 - 리모트 저장소 (0) | 2020.11.25 |
---|---|
[Git의 개념] 버전관리란? (0) | 2020.08.21 |
[ERROR LOG] git : src refspec Branch_Name does not match any , failed to push some refs to 'Path' (2) | 2020.07.28 |