깃을 사용하는 방법으로는 크게 두 가지가 있다.
바로 CLI와 GUI이다.
우선 깃을 사용하기 위한 준비 작업을 마친 후 시작하자.
1. 원하는 위치에 프로젝트를 진행할 폴더를 만든다.
2. 그 폴더를 vsc로 연다.
# GUI로 만들어진 소프트웨어 SourceTree 사용하기 --> Github desktop을 다룰 예정
# CLI로 명령어 입력하기
:Command Line Interface
0. vsc에서 ctrl+` 단축키로 터미널을 연다.
이렇게 하면 직접 입력하지 않고도 현재 폴더로 이동할 수 있다.
1. 깃 저장소 만들기
git init
이 폴더가 깃의 관리 하에 들어간 것이다.
2. 현재 시점을 저장하기
지금 이 순간을 타임캡슐에 묻어두는 과정.
git status
담을 게 뭐가 있는지 알 수 있다.
git add -A
이 곳의 모든 것을 git의 타임캡슐에 넣는 것이다.
깃 용어로 stage한다고 한다.
- Untracted files -> add 전
- Changes to be committed -> add 후. commit 해야 할 것들
git commit -m "(설명)"
(설명) 메세지로 커밋한다.
- nothing to commit, working tree clean -> 모두 commit 되어 묻을 게 없다.
git log
지금까지의 기록 확인 가능
3.1 과거로 돌아가기 - Reset
돌아갈 과거 이후의 행적은 복원할 여지 없이 완전히 지운다.
git log로 확인했을 때 흔적이 없다.
git reset (일련번호 6자리)--hard
복원하고 싶은 지점의 일련번호 앞 6자리만 복사하여 붙여넣기 한다.
3.2 과거로 돌아가기 - Revert
미래에 한 발을 거치고 과거로 가는 법. 취소할 시점.
git log로 확인했을 때 흔적이 있다.
git revert (일련번호 6자리)
:wq -> 그대로 저장하겠다는 vi 명령어
4. 평행우주 넘나들기 - Branch
git branch my-idea
다른 평행우주 만들어 넘어간다.
현 시점에서 두 미래로 분기하겠다는 의미.
분기하기 전 원 branch 파일을 그대로 가져간다.
git branch
현재 branch 상태를 확인할 수 있다.
git checkout my-idea
my-idea branch로 넘어간다.
git checkout master
master branch로 넘어간다.
5.1 다른 우주에서 가져오기 - Merge(병합)
파생된 브랜치의 변화를 master 브랜치로 가져와 보자.
git checkout master
git merge my-another-idea(불러올 대상)
git log --graph --all --decorate
시각화된 두 분기에서의 작업내역을 볼 수 있다.
※ Conflict
두 브랜치 모두에서 같은 파일, 같은 부분에 수정을 가했을 때
병합 시에 conflict가 발생한다.
이 때는 git이 자동 add를 거부하여 메세지가 뜬다.
이를 해결해야 작업을 진행할 수 있다.
한 쪽을 수정해서 git add -A -> git commit -> :wq 로 merge를 완료할 수 있다.
이는 해결이 피곤하므로 가능한 다른 브랜치들이 같은 파일을 수정하는 일을 피하는 것이 낫다.
5.2 다른 우주에서 가져오기 - Rebase(재배치)
변경 내용들이 한 줄로 딱 정리되면 좋겠을 때
git branch -D my-idea(브랜치명)
명령어를 이용해 branch를 삭제할 수 있다.
'Study > TIPS' 카테고리의 다른 글
HTML, CSS, JS를 이용하면 어떤 것들을 만들 수 있을까? (토이 프로젝트 주제 추천) (0) | 2021.07.29 |
---|---|
[웹] 제작한 웹 사이트 무료로 배포하는 방법 2가지 (0) | 2021.07.29 |
[깃, 깃허브] 깃허브(Github) 사용법 (w. 얄팍한 코딩사전) (0) | 2021.07.25 |
[깃, 깃허브] 깃(Git)과 Github의 차이 (w. 얄팍한 코딩사전) (0) | 2021.07.25 |