밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • Points of Presence
  • 한입 크기로 잘라먹는 리액트
  • 수평 스케일링
  • 서비스아키텍처
  • overflow-wrap
  • useState
  • Availability Zones
  • 컴포넌트트리
  • 한입크기로잘라먹는리액트
  • 데이터 수정
  • useRef
  • 리액트 생애주기
  • useParams
  • DOM
  • 네이버커넥트
  • state 관리
  • 리액트 프로젝트 만들기
  • 분산저장소
  • state 끌어올리기
  • API 호출
  • 리스트 조회
  • useNavigate
  • Edge Locations
  • State 합치기
  • react
  • AWS Regions
  • 함수형 update
  • Page Moving
  • 리액트 reducer

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비

프로그램의 편린

[Git] 100일 코딩 챌린지 - Git 기본 명령어
TIL

[Git] 100일 코딩 챌린지 - Git 기본 명령어

2023. 4. 10. 03:57
728x90

Git은 내 프로젝트가 수정될 때마다 버전을 저장해 관리할 수 있게 하는 프로그램입니다.

코드는 add 명령어를 통해 staging area에 들어가, 변경사항이 트래킹됩니다.
트래킹 완료된 파일들은 commit 명령어를 통해 버전이 저장됩니다.

git init

깃 저장소를 초기화하는 명령어입니다.

프로젝트 폴더를 워킹 디렉토리로 바꾸고 코드 파일을 깃으로 관리할 수 있게 됩니다.

git add .
git commit -m "커밋메세지"

이렇게 add와 commit이 가능합니다.

커밋메세지는 이전 버전과 비교해 어떤 부분이 수정되고 추가되었는지를 간략하게 작성하면 됩니다.

git status

git status는 현재 staged되지 않은(즉 add되지 않은) 파일들,
그리고 staging area에서 커밋되기 전 파일들의 목록을 알려줍니다.
 

git log

git log는 현재까지의 commit 기록을 나타내줍니다.
 

git rm [파일이름]

해당 파일을 삭제하고, git에 add까지 해줍니다.

이 명령어 없이 그냥 파일을 삭제한 후, git status입니다.
add가 반영되지 않아 파일이 staged되지 않았습니다.

이번에는 rm 명령어를 사용해 삭제한 후 git status입니다.
add까지 완료되어 staging area에 올라간 모습입니다.
 

git reset --hard HEAD~1

git reset은 커밋을 되돌린다는 뜻입니다.
--hard는 커밋을 지정한 곳으로 완전히 돌리고, 이전 데이터를 지워버린다는 뜻입니다.
git log에서 보면, 가장 최근 커밋에 HEAD가 있을 것입니다. HEAD는 커밋을 가리키는 포인터 역할을 합니다.
HEAD~1은 즉슨 HEAD로부터 한 커밋 전으로 되돌린다는 뜻이 됩니다.
두 커밋, 세 커밋 전으로 돌리려면 ~2, ~3 등 응용해 사용 가능합니다.
 
아까 file1.txt와 file2.txt를 지운 후 커밋하고 위 명령어를 입력하면, 다시 두 파일이 생기는 것을 확인할 수 있습니다.
 

git branch

현재 존재하는 branch들을 확인할 수 있습니다.

git branch -D [브랜치 이름]

해당 브랜치를 삭제할 수 있습니다.
 

git checkout -- .
git checkout -- [파일 이름]

가장 최근의 커밋 상태로 코드를 되돌립니다. "."를 사용하면 하나 전체를 되돌리고, 파일이름을 쓰면 해당 파일만 되돌립니다.
잘못해서 파일이 수정/삭제되었을 때, 위 명령어로 복구가 가능합니다.
또, 수정 사항을 커밋하지 않고 다른 브랜치로 갈 경우 오류가 발생하는데, 이를 취소하기 위해서도 위의 명령어를 쓸 수 있습니다.
 
그렇다면 이미 add되어 staging area로 올라간 코드는 어떻게 취소해야 할까요?
 
1. git reset 명령어를 씁니다.

git reset [파일 이름]

git reset은 staging area의 변경사항을 staging되지 않은 상태로 만듭니다.
 
2. 이제 아까 배운 checkout -- . 명령어를 씁니다.

git checkout -- .

이제 staging area에 올라온 코드가 없으므로 checkout -- 를 정상적으로 사용 가능해집니다.
 

728x90

'TIL' 카테고리의 다른 글

[html/css] 100일 코딩 챌린지 - flex 박스  (0) 2023.04.12
[Git/Github] 100일 코딩 챌린지 - 깃허브란?  (0) 2023.04.12
[HTML/CSS] 100일 코딩 챌린지 - 실습(9, 10일차)  (0) 2023.04.07
[HTML/CSS] 100일 코딩 챌린지 - html 레이아웃 만들기(8일차)  (0) 2023.04.06
[WebSocket]Express 서버에 WS 합치기, 프론트와 데이터 공유하기  (0) 2022.10.09
    밍비
    밍비

    티스토리툴바