[git] git의 색인에서 파일을 제거하는 방법은 무엇입니까?

파일 시스템에서 파일을 제거하지 않고 인덱스에서 파일을 제거하는 방법 (= 준비 영역 = 캐시)?



답변

당신이 원하는 :

git rm --cached [file]

--cached옵션 을 생략 하면 작업 트리에서도 옵션이 삭제됩니다. 준비된 콘텐츠가 분기의 끝 또는 디스크의 파일과 일치하지 않으면 경고 메시지가 표시되므로 git rm보다 약간 안전 git reset합니다. (그렇지 않으면을 추가해야합니다 --force.)


답변

파일을 제거하거나 수정하지 않고 <file>의 스테이지를 해제해야합니다.

git reset <file>


답변

git reset HEAD <file>

색인에서 특정 파일을 제거합니다.

git reset HEAD

인덱싱 된 파일을 모두 제거합니다.


답변

워크 플로에 따라, 이것은 명령 줄 솔루션을 알아 내려는 데 거의 도움이되지 않을 정도로 거의 필요하지 않을 수도 있습니다 (어떤 이유로 그래픽 인터페이스없이 작업하지 않는 한).

인덱스 관리를 지원하는 GUI 기반 도구 중 하나를 사용하십시오 (예 :

  • git gui <-Tk 윈도우 프레임 워크를 사용합니다. gitk
  • git cola <-보다 현대적인 GUI 인터페이스

포인트 앤 클릭으로 인덱스 안팎으로 파일을 이동할 수 있습니다. 또한 파일의 일부 (개별 변경)를 선택하거나 인덱스에서 이동하는 기능도 지원합니다.


다른 관점은 어떻습니까? 제안되고 다소 비밀스러운 명령 중 하나를 사용하는 동안 엉망이되면 :

  • git rm --cached [file]
  • git reset HEAD <file>

… 실제로 데이터를 잃어 버리거나 최소한 찾기가 어려울 수 있습니다. 매우 높은 빈도로이 작업을 수행해야하는 경우가 아니라면 GUI 도구를 사용하는 것이 더 안전 할 것 입니다.


색인없이 작업

의견과 투표를 바탕으로 많은 사람들이 항상 색인을 사용한다는 것을 알게되었습니다. 난 아니야 방법은 다음과 같습니다.

  • 전체 작업 사본을 커밋하십시오 (일반적인 경우). git commit -a
  • 몇 개의 파일 만 커밋하십시오. git commit (list of files)
  • 수정 된 파일을 제외하고 모두 커밋 : git commit -a다음을 통해 수정git gui
  • 작업 사본의 모든 변경 사항을 그래픽으로 검토하십시오. git difftool --dir-diff --tool=meld

답변