일부 파일을 삭제했으며 아래와 같이 자식 상태가 표시됩니다.
나는 커밋하고 추진했다.
GitHub는 여전히 저장소에서 삭제 된 파일을 표시합니다. GitHub 리포지토리에서 파일을 어떻게 삭제합니까?
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: modules/welcome/language/english/kaimonokago_lang.php
# deleted: modules/welcome/language/french/kaimonokago_lang.php
# deleted: modules/welcome/language/german/kaimonokago_lang.php
# deleted: modules/welcome/language/norwegian/kaimonokago_lang.php
를 사용 git rm
하면 다음을 제공합니다.
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing matched
답변
git add -u
모든 변경 사항을 업데이트합니다
답변
매우 조심하십시오 git rm .
; 원하는 것보다 더 많이 제거 할 수 있습니다. 물론 복구 할 수는 있지만 복구 할 필요는 없습니다.
가장 간단한 방법은 다음과 같습니다.
git rm modules/welcome/language/english/kaimonokago_lang.php \
modules/welcome/language/french/kaimonokago_lang.php \
modules/welcome/language/german/kaimonokago_lang.php \
modules/welcome/language/norwegian/kaimonokago_lang.php
파일이 존재하지 않기 때문에 쉘 와일드 카드를 사용할 수는 없지만 적어도 Bash에서 사용할 수 있습니다.
git rm modules/welcome/language/{english,french,german,norwegian}/kaimonokago_lang.php
또는 다음을 고려하십시오.
git status | sed -n '/^# *deleted:/s///p' | xargs git rm
이것은의 출력을 취하고 git status
기본적으로 아무것도 인쇄하지 않지만 ( sed -n
) 시작하는 행 # deleted:
에서는를 제거 #
하고 deleted:
남은 것을 인쇄합니다. xargs
인수를 모아서 git rm
명령에 제공합니다 . 이름의 유사성 (또는 비 유사성)에 관계없이 여러 파일에 적용됩니다.
답변
ByScripts 답변의 다른 버전은
git rm $(git ls-files --deleted)
이것은 git에서 삭제 된 파일 만 제거합니다.
수정 된 파일 만 추가 할 때도 사용할 수 있습니다.
git add $(git ls-files --modified)
이 명령은 Windows 용 gitbash에서도 작동합니다.
답변
변경 사항을 모두 업데이트하십시오.
git add -u
삭제 된 파일은 준비되지 않은 (보통 빨간색)에서 준비된 (녹색)으로 변경되어야합니다. 그런 다음 삭제 된 파일을 제거합니다.
git commit -m "note"
답변
수정 된 파일 준비에 신경 쓰지 않는 가장 좋은 솔루션은 mshameers 및 / 또는 pb2q에서git add -u
말한대로 사용 하는 것 입니다.
삭제 된 파일을 제거하고 수정 된 파일을 준비하지 않으 ls-files
려면 --deleted
옵션 과 함께 인수 를 사용해야한다고 생각합니다 (regex 또는 다른 복잡한 인수 / 옵션을 사용할 필요가 없습니다).
git ls-files --deleted | xargs git rm
답변
예, git rm <filename>
파일의 삭제 된 상태를 준비합니다. 여기서 <filename>
glob 패턴이 될 수 있습니다.
$ git rm modules/welcome/language/*/kaimonokago_lang.php
rm modules/welcome/language/english/kaimonokago_lang.php
rm modules/welcome/language/french/kaimonokago_lang.php
rm modules/welcome/language/german/kaimonokago_lang.php
rm modules/welcome/language/norwegian/kaimonokago_lang.php
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: modules/welcome/language/english/kaimonokago_lang.php
# ...
그러면 커밋 할 수 있습니다.
git commit -a
원하는 경우 한 번에이 작업을 수행합니다.
당신은 또한 사용할 수 있습니다 git add -u
다음, 모든 삭제 된 파일을 포함하여 모든 변경 사항을, 무대 커밋.
답변
커밋을 위해 준비되지 않은 파일을 많이 삭제하면 다음 git rm
과 같이 한 번에 모두 표시 할 수 있습니다.
for i in `git status | grep deleted | awk '{print $3}'`; do git rm $i; done
질문 답변자가 언급했듯이에주의하십시오 git rm
.