2009-12-31 4 views
115

우선, 나는 힘내게 좋다.Git/GitHub를 사용하여 파일 삭제

Finder를 사용하여 Mac에서 파일을 로컬에서 삭제했습니다. 삭제 한 파일을 현재 분기에 더 이상 표시하지 않겠습니까?

모든 Git 사용자는 색인을 업데이트하라는 명령을 알고 있습니까?

당신은 여전히 ​​함께 '추적'삭제 된 파일을 참조
+0

참조 http://stackoverflow.com/questions/492558/removing-multiple-files-from-a-git-repo-that-have-already-been -deleted-from-disk –

답변

224

: "뭔가를 할

다음
git add . -A 

당신은 다만 것 :

git commit -m "removed some files" 

위에서 언급 한 바와 같이.

+0

고마워요. 그리고 위의 작업을 수행하기 위해'bash'에 별칭을 작성했습니다. 놀라운. – Zack

+0

동일한 "스테이지"에서 파일을 추가하면 자식의 이름이 변경됩니다. 그 일에 대해 할 일이나 그 일을 따로해야합니까? – Koen

+12

-A 플래그는 무엇을합니까? –

17

수 : man git-rm에서

git ls-files --deleted -z | xargs -0 git rm 

: 지점에서 파일을 삭제하려면

git ls-files --deleted 

을, 당신은 이런 식으로 뭔가를 할 수

색인 또는 작업 트리 및 색인에서 파일을 제거하십시오. git-rm은 작업 디렉터리에서만 파일을 제거하지 않습니다. ( 13 만 인덱스에 보관 아직 작업 트리에서와 파일을 제거 할 수있는 옵션이 없습니다. 사용/빈/RM은 당신이 그렇게 할 경우)

마지막으로 "제거를 저지 나는 이것이 당신이 원하는 것을 할 수있는 간단한 방법이 될 것이라고 생각

git commit -m "removed some files" 
+0

고맙습니다. 다음은 무엇입니까? – Zack

+0

그런 다음 변경을 커밋해야합니다 -'git commit -m "일부 파일을 제거했습니다." –

+0

예, 물론, 감사합니다 - – miku

17

이 이전 응답 이후 이눔에 추가 된 경우 나도 몰라,하지만 난 그냥 같은 일을 달성하기 위해

git add -u 
git commit -m "Removed some files" 

을 사용했다.

+0

나열된 유스 케이스에서 작동하지만 파일 삭제 만 추가하는 것은 아닙니다. 그것은 어떤 방식 으로든 변경된 모든 파일을 추가하기 때문에 일반적으로 변경하지 않은 한 삭제 된 파일을 모두 제거하는 것이 일반적으로 좋은 방법은 아닙니다. – Alex

2
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all 
git commit -m "Removed deletefile.name" 
git push origin master --force 

삭제할 파일로 deletefile.name을 바꾸십시오. 자세한 내용은 멋진 기사를 참조하십시오. https://help.github.com/articles/remove-sensitive-data