📚 코딩애플의 '매우 쉽게 알려주는 git & github'을 수강하며 배우거나 추가적으로 찾아본 것들을 정리한 내용입니다.
git
2일 전 코드로 되돌아가려면?
예기치 못한 오류로 인해 2일 전에 작성했던 내용이 필요하다면 어떻게 복구할 수 있을까? 매일매일 파일의 복사본을 만들거나, 버전 관리 소프트웨어를 사용해야 할 것이다.
버전 관리 시스템이란 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 위의 스크린샷처럼 게임은 파일 별로 세이브데이터를 저장해 뒀다가, 이후에 내가 원하는 버전으로 다시 플레이하거나 삭제하며 관리할 수 있다. 이처럼 코드는 git을 이용해 작성한 내용을 버전 별로 관리할 수 있다. 작업한 코드를 기록하고 보관할 수 있고, 이전 버전으로 회귀하거나 작업했던 내용을 열람할 수 있도록 도와준다.
git 세팅
VSCode에서 임의의 파일을 생성한 후 우클릭 → 파워쉘 열기를 클릭하고 아래의 명령어를 작성해본다.
# git 설치 되었는지 및 버전 확인
git --version
# git 유저 이름 셋팅
git config --global user.email "(본인의 이메일 또는 github 이메일)"
git config --global user.name "(본인의 이름 또는 github user name)"
git, add, commit으로 파일 기록하기
VSCode 세팅
VSCode 상단 메뉴바에서 terminal → new terminal을 클릭한다.
# git 사용하도록 세팅 (이제부터 파일 추적을 시작하도록)
git init
테스트해보기
임의의 텍스트 파일을 생성하여 commit을 진행해 본다.
git add 해당파일명
git commit -m '이 커밋에 대해 적고 싶은 메세지'
add, commit
git add와 git commit을 하나의 명령어로 쓸 수 있긴 하나, 처음 배울 때는 개념 정립을 위해 각각 따로 사용해 보는 것이 좋다.
내 작업 폴더에서
- git add 명령어로 기록할 파일을 고르고,
- 고른 파일의 기록을 명령할 때는 git commit을 진행한다.
staging area
- commit을 하기 전에 commit할 파일들을 골라놓는 곳이다.
- 작업 폴더에서 staging area로 파일을 골라내는 행위를 '스테이징 한다'라고도 한다. 즉, commit을 진행할 파일을 골라놨다는 의미이다.
- git add 명령어를 이용해 스테이징할 수 있다.
repository
- commit된 파일의 버전들을 모아두는 곳이다.
그 외 용어 배우기
# 여러 파일 같이 스테이징 하기
git add 파일명1, 파일명2, ...
# 모든 파일 스테이징 하기
git add .
# git 상태창 열기
git status
# 스테이징된 파일 취소
git restore --staged 파일명
# 여기서 파일명에 .(전체) 찍으면..🥲❌
# commit 내역 조회
git log --all --oneline
# commit 내역 그래프로 확인하기
git log --all --online --graph
# 다만 입력 후엔 Vim 에디터가 켜져서 j, k로 위아래 스크롤이 가능하고 q키로 종료할 수 있음
[참고] 이미 staging된 파일을 추가 수정하고 커밋하고 싶다면?
위와 같이 이미 staging area에 파일이 올라가 있고, 동일 파일을 수정한 내용이 있는데 이를 한꺼번에 처리하고 싶다면 아래와 같이 진행할 수 있다.
git commit -a -m '커밋메세지'
git add, commit, diff 쉽게 하는 법
VS Code Source Control
✨ Ctrl + Shift + G
+, - 를 누르면 add하거나 뺄 수도 있고, 맨 위의 체크모양(✔️)을 누르면 commit을 할 수 있다. 그 아래 input에 메세지도 입력 가능하다.
git diff
# 최근 commit과 현재 파일의 차이점을 보여준다.
git diff
# Vim 에디터 뜨는데, j/k로 스크롤바 조작 가능하고 q로 종료 가능
다만 코드가 길고 복잡해지면 터미널 창으로 확인하기 힘들며, 엔터키와 스페이스바를 입력한 것도 차이점으로 분석해 버리는 단점이 있다.
git diff tool
# git diff를 비주얼적으로 보여준다.
git difftool
# :q, 또는 :qa 입력 시 종료 가능
# 커밋 아이디(git ID 아님, log확인 시 나오는 ID임) 같이 입력하기
# 현재파일 vs 특정커밋 비교 가능
git difftool 커밋아이디
[관련 글 함께 보기]
[참고 자료]
https://codingapple.com/course/git-and-github/
'Etc.' 카테고리의 다른 글
[코딩애플 / git] git & github(3)_restore, revert, reset 사용법 (0) | 2023.03.27 |
---|---|
[코딩애플 / git] git & github(2)_branch, merge 사용법 (0) | 2023.03.26 |
[Node.js / AWS Lambda / Discord] 시간 자동 알림 디스코드 웹 훅 만들기 (2) | 2023.03.24 |
[Frontend Developer Roadmap] 프론트엔드 로드맵 2023 (0) | 2023.02.07 |
[백준허브] 백준, 프로그래머스 문제 깃허브로 자동 커밋하기 (6) | 2023.01.24 |