조회 수 5414 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html



git add 취소하기(파일 상태를 Unstage로 변경하기)

아래와 같이 실수로 git add * 명령을 사용하여 모든 파일을 Staging Area에 넣은 경우,

Staging Area(git add 명령 수행한 후의 상태)에 넣은 파일을 빼고 싶을 때가 있다.

// 모든 파일이 Staged 상태로 바뀐다.

$ git add *

// 파일들의 상태를 확인한다.

$ git status

On branch master

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

  renamed:    README.md -> README

  modified:   CONTRIBUTING.md

이때, git reset HEAD [file] 명령어를 통해 git add를 취소할 수 있다.


뒤에 파일명이 없으면 add한 파일 전체를 취소한다.

CONTRIBUTING.md 파일을 Unstaged 상태로 변경해보자.

// CONTRIBUTING.md 파일을 Unstage로 변경한다.

$ git reset HEAD CONTRIBUTING.md

Unstaged changes after reset:

M CONTRIBUTING.md

// 파일들의 상태를 확인한다.

$ git status

On branch master

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

  renamed:    README.md -> README

Changes not staged for commit:

(use "git add <file>..." to update what will be committed)

(use "git checkout -- <file>..." to discard changes in working directory)

  modified:   CONTRIBUTING.md



git commit 취소하기

commit 취소하기

완료한 commit을 취소해야 할 때가 있다.

너무 일찍 commit한 경우

어떤 파일을 빼먹고 commit한 경우 이때, git reset HEAD^ 명령어를 통해 git commit을 취소할 수 있다.

// commit 목록 확인

$ git log

// [방법 1] commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존

$ git reset --soft HEAD^

// [방법 2] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존

$ git reset --mixed HEAD^ // 기본 옵션

$ git reset HEAD^ // 위와 동일

$ git reset HEAD~2 // 마지막 2개의 commit을 취소

// [방법 3] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제

$ git reset --hard HEAD^

commit message 변경하기

commit message를 잘못 적은 경우, git commit –amend 명령어를 통해 git commit message를 변경할 수 있다.

$ git commit --amend

TIP git reset 명령은 아래의 옵션과 관련해서 주의하여 사용해야 한다.

reset 옵션

–soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.

–mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)

–hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.

TIP 만약 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면, 아래의 명령어를 사용한다.

단, 이 명령을 사용하면 원격 저장소에 있는 마지막 commit 이후의 워킹 디렉터리와 add했던 파일들이 모두 사라지므로 주의해야 한다.

// 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌린다.

$ git reset --hard HEAD



git push 취소하기

이 명령을 사용하면 자신의 local의 내용을 remote에 강제로 덮어쓰기를 하는 것이기 때문에 주의해야 한다.

되돌아간 commit 이후의 모든 commit 정보가 사라지기 때문에 주의해야 한다.

특히, 협업 프로젝트에서는 동기화 문제가 발생할 수 있으므로 팀원과 상의 후 진행하는 것이 좋다.

워킹 디렉터리에서 commit 되돌린다.

가장 최근의 commit을 취소하고 워킹 디렉터리를 되돌린다.

// 가장 최근의 commit을 취소 (기본 옵션: --mixed)

$ git reset HEAD^

원하는 시점으로 워킹 디렉터리를 되돌린다.

// Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인

$ git reflog 또는 $ git log -g

// 원하는 시점으로 워킹 디렉터리를 되돌린다.

$ git reset HEAD@{number} 또는 $ git reset [commit id]

되돌려진 상태에서 다시 commit을 한다.

$ git commit -m "Write commit messages"

원격 저장소에 강제로 push 한다.

$ git push origin [branch name] -f

또는

$ git push origin +[branch name]

// Ex) master branch를 원격 저장소(origin)에 강제로 push

$ git push origin +master

TIP 경고를 무시하고 강제로 push 하기

[방법 1] -f 옵션

–force 옵션과 동일하다.

[방법 2] +[branch name]

해당 branch를 강제로 push한다.



untracked 파일 삭제하기

git clean 명령은 추적 중이지 않은 파일만 지우는 게 기본 동작이다. 즉, .gitignore 에 명시하여 무시되는 파일은 지우지 않는다.


$ git clean -f // 디렉터리를 제외한 파일들만 삭제

$ git clean -f -d // 디렉터리까지 삭제

$ git clean -f -d -x // 무시된 파일까지 삭제

TIP option

-d 옵션

디렉터리까지 지우는 것

-x 옵션

무시된 파일(.DS_Store나 .gitignore에 등록한 확장자 파일들)까지 모두 지우는 것

Ex) .o 파일 같은 빌드 파일까지도 지울 수 있다.

-n 옵션

가상으로 실행해보고 어떤 파일들이 지워질지 알려주는 것



https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
506 C 힙 정렬 Heap Sort file 2005.08.10 38227 0
505 Pi 회로부품 메모 1 secret 2019.08.09 1 0
504 JAVA 현재시간 구하기 2015.10.21 7746 0
503 MFC 현재디렉토리의 파일리스트들을 알아오는 클래스 CFindFile 2008.05.07 62451 0
502 MFC 현재 실행된 어플리케이션의 디렉토리 적용하기 2008.05.07 39888 0
501 일반 프리미어 프로 Premier Pro secret 2022.02.04 0 0
500 MFC 프로젝트 Resource에서 파일로 저장하는 방법 2010.11.01 34683 0
499 LINUX 프로세스를 이름으로 단번에 종료하기 2017.06.07 8564 0
498 MFC 폴더가 존재하는 지 확인하고, 없으면 만드는 함수 2010.02.01 58373 0
497 Pi 포토커플러 Photo Coupler 특징, 종류, 출력, 구조, 동작 원리, 파라미터 2019.01.03 25940 0
496 LINUX 패치 파일 만들기와 적용하기 (patch, diff) 2 2012.10.22 35800 0
495 MFC 파일 읽기 전용 해제 및 설정 2009.09.11 54200 0
494 PHP 파일 데이터 저장하고 불러오기(파일 입출력) 2015.09.30 8390 0
493 Pi 파이썬 코드를 이용한 파이카메라 제어 2018.04.24 10331 0
492 C# 트레이 아이콘 만들기 2013.08.05 13121 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5