일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스 데브코스 프론트엔드
- 이벤트 수식어
- 프로그래머스 K_Digital Training
- netlify redirect
- nextjs사용법
- 리스트 렌더링
- KDT 프로그래머스
- postcss
- SCSS import
- vuex map
- 고양이 사진 검색기
- vue 이벤트 수신
- flex
- SCSS use
- SCSS forward
- 프로그래머스 데브코스
- vue 지역 컴포넌트
- Vue
- 쌓임맥락
- 프로그래머스 프론트엔드 데브코스
- react next
- vue mixin
- 다른컴퓨터에서 git사용
- SCSS extend
- Spacer
- 리액트
- intersection opserver
- 폼 입력 바인딩
- KDT 프로그래머스 데브코스 프론트엔드
- git 같은계정 다른 컴퓨터
- Today
- Total
혼자 적어보는 노트
[Git] Git의 공간 다루기 / commit / add / diff / stash 본문
git의 4가지 공간
1. Working directory (작업공간)
- 실제 프로젝트를 하고 있는 공간
- untracked : git에서 추적하고 있지 않은 파일, add된 적 없는 파일. ignore된 파일 포함.
- tracked : git에서 추적하고 있는 파일중 수정된 파일. add된 적 있는 파일.
2. Staging area
- add 할 경우 working directory에서 staging area로 이동.
- 즉, 커밋하기 전 add로 파일들을 올려놓은 공간
3. Repository (저장소)
- Local Repository : 로컬저장소. 내 pc에 있는 파일이 저장되는 저장소
- Remote Repository : 원격저장소. 서버에서 관리하고 공유되는 저장소
4. Stash
- 임시적으로 작업사항을 저장해 놓은 공간
status
파일이 추가되거나 변경,삭제 된 내역을 볼 수 있다.
git status
commit 하기 전 staging area에 파일 올리기
파일 한 개 staging area에 올리기
git add 파일명
모든 파일 staging area에 올리기
git add .
같은 파일의 수정된 부분을 나누어서 add하기
아래의 명령어로 수정된 부분을 확인하면서 선택하여 add를 할 수 있다.
git add -p
옵션 설명보기 : ? / y or n 로 add할 부분과 하지 않을 부분을 나눌 수 있다.
git에서 파일을 지우거나 파일명을 변경했을 때 working directory에 남아있는데
아래의 명령어들로 파일 삭제/파일명 수정 시 바로 add까지 시켜줄 수 있다.
파일을 삭제함과 동시에 staging area로 이동(add)
git rm [파일명]
파일의 이름을 변경함과 동시에 staging area로 이동(add)
git mv [파일명] [변경할파일명]
add한 파일 되돌리기
아래의 명령어로 Staging area에 올린 파일을 다시 Working directory로 옮길 수 있다.
git restore --staged [파일명]
수정한 파일을 이전 커밋 상태로 되돌리기
커밋을 추가하고 파일을 수정한 다음 해당 파일의 코드를 다시 이전 커밋상태로 돌리고 싶을 때 사용 가능하다.
git restore [파일명]
특정 파일을 특정 커밋의 상태로 되돌리기
git restore --source=[커밋해시] [파일명]
commit
git commit -m "메세지"
따옴표 안에 커밋 메세지를 적어줄 수 있다.
add와 commit 한 번에 하기
git commit -am "메세지"
새로 추가된 파일 없이 수정된 파일만 있을 경우 add없이 커밋을 한 번에 할 수 있다.
변경사항을 확인하며 commit 하기
git commit -v
📄 최근 변경한 커밋 메세지 수정 & 최근 변경한 커밋에 변경사항 추가
* 최근 커밋한 메세지에 오타 발견 및 바로 수정할 때
* 최근 커밋에 추가 사항이 생겼는데 따로 커밋하기 애매할 때
git commit --amend
git commit --amend -m "[수정할 메세지]"
commit 히스토리 조회하기
git log
커밋 내역, 커밋이름, 메세지, 커밋 날짜 등을 시간순으로 확인할 수 있다.
commit 1673c46740d80abadf5b7b49251cf541ab07fc47
Author: jinist94 <325days@naver.com>
Date: Thu Feb 3 05:41:48 2022 +0900
commit3
commit 001706ae9fddff0408b69f4964527edba55a070a
Author: jinist94 <325days@naver.com>
Date: Thu Feb 3 05:40:07 2022 +0900
commit2
commit e9d7dba8f722c3ffcc56de09453143ded1ca4c59
Author: jinist94 <325days@naver.com>
Date: Thu Feb 3 05:39:24 2022 +0900
commit1
커밋이 많아지면 스크롤이 길어지는데 줄여서 확인 하는 방법도 있다.
한 줄로 log 확인 하기
git log --oneline // log를 한줄로 표시
git log --oneline -n 3 // log의 최근 3개 표시
파일 변경 내역 확인하기 / diff
commit된 파일상태와 현재 상태 비교
git diff
commit된 파일상태와 stage의 (add된) 파일 상태 비교
git diff --staged
commit간의 상태 비교하기
git diff [비교할커밋해시1] [비교할커밋해시2]
이전 commit과 현재 커밋 비교
git diff HEAD~
branch간의 커밋 비교
git diff [비교할 브랜치명2] [비교할 브랜치명2]
stash
stash를 이용하면 커밋되지 않은 변경사항을 임시 공간에 보냈다가 다시 꺼내서 쓸 수 있다.
git stash
git에서 추적하고 있지 않은 untracked 파일은 add를 해 주어야 stash에 보낼 수 있다.
메세지와 함께 stash
git stash -m '[메시지]'
stash 리스트 보기
$ git stash list
stash@{0}: On main: Modify User // 메시지를 적었을 경우
stash@{1}: WIP on main: 0be77c7 Update friend.txt // 메시지를 생략한 경우
위로 쌓이면서 저장되는 방식이다.
📂 stash된 내역 불러오기
stash list에서 내역을 삭제하지 않고 적용
git stash apply [스태시 넘버]
//예시
git stash apply stash@{0}
스태시넘버 생략 시 최근 스태시가 적용된다.
스태시 적용과 동시에 list에 있는 해당 내역 삭제
git stash pop [스태시 넘버]
//예시
git stash pop stash@{0}
스태시넘버 생략 시 최근 스태시가 적용된다.
브랜치에 stash + pop 적용
*새로운 브랜치에 stash를 적용하여 충돌이 예상되는 부분을 수정 후 merge하는 방법도 있다.
git stash branch [브랜치명]
stash 삭제
git stash drop [스태시 넘버]
스태시 넘버 생략 시 최근 스태시가 삭제된다.
stash list 전체 삭제
git stash clear
'기타' 카테고리의 다른 글
[Git] 브랜치 다루기, 충돌 해결 / branch / merge / rebase (0) | 2022.02.04 |
---|---|
[Git] commit, reset 되돌리기 - reset / revert / conflict / reflog (0) | 2022.02.03 |
[Git] 초기설정 / 저장소생성 / gitignore (0) | 2022.02.03 |
[VSCode] 기본 터미널 설정 (0) | 2022.02.03 |
Git 브랜치 삭제 (0) | 2022.01.22 |