rm' 대신 'gitrm'을 사용하여 파일을 제거하는 이유는 무엇입니까?
SVN에서는 파일 시스템에서 svn을 사용하지 않고 직접 무언가를 제거하면 많은 문제가 발생했습니다.
사용 시 문제가 되지 않습니다.git
하지만 기트는 그 나름의 능력이 있다는 것을 알아챘습니다.rm
구현)git rm
).
사이의 차이점은 무엇입니까?rm
그리고.git rm
?
그냥 사용하면 됩니다.rm
당신은 그것을 따라가야 할 것입니다.git add <fileRemoved>
.git rm
한 단계로 수행합니다.
사용할 수도 있습니다.git rm --cached
이렇게 하면 파일이 인덱스에서 제거되지만(다음 번 커밋 시 삭제할 수 있도록) 로컬 파일 시스템에 복사본이 유지됩니다.
를 사용하여 파일 rm
문제 자체는 아니지만, 파일이 제거되었다고 커밋하려면 다음 작업을 수행해야 합니다.git rm
어쨌든, 그래서 당신은 즉시 그렇게 하는 것이 좋을 것입니다.
또한, 당신의 껍질에 따라, 하기.git rm
에는 탭 .git rm
파일이 아직 존재하는 동안 탭 완료는 정상적으로 작동합니다.
git rm
및 디렉터리에서 합니다(한 경우 만 해당).--cached
삭제가 다음 커밋을 위해 준비되도록 합니다.
Andy의 대답에 덧붙여, 다음과 같은 추가적인 유용성이 있습니다.git rm
:
안전성: 할 때
git rm
에rm
Git는 다음 항목 사이에 불일치가 있을 경우 제거를 차단합니다.HEAD
파일 버전 및 준비 인덱스 또는 작업 트리 버전.이 블록은 진행 중인 변경사항의 제거를 방지하는 안전 메커니즘입니다.보호:
git rm --dry-run
▁the▁that▁다▁execute▁is를 실행하는 세이프가드입니다.git rm
파일을 실제로 삭제하지는 않습니다.대신 제거했을 파일을 출력합니다.
하지만, 만약 당신이 gitrm 대신 rm을 사용하게 된다면,다음을 사용하여 git add를 건너뛰고 변경 내용을 직접 커밋할 수 있습니다.
git commit -a
인덱스 또는 작업 트리와 인덱스에서 파일을 제거합니다. gitrm은 작업 디렉터리에서만 파일을 제거하지 않습니다.
다음을 사용하여 파일을 삭제하는 방법은 다음과 같습니다.rm -f
에서 런그다인제거합다니서에스덱음▁it▁with▁from로 제거합니다.git rm
$ rm -f index.html
$ git status -s
D index.html
$ git rm index.html
rm 'index.html'
$ git status -s
D index.html
하지만 당신은 이 모든 것을 단번에 할 수 있습니다.git rm
$ git status -s
$ git rm index.html
rm 'index.html'
$ ls
lib vendor
$ git status -s
D index.html
gitrm을 사용할 때 제거는 다음 커밋의 일부가 됩니다.그래서 만약 당신이 변화를 밀고 싶다면 당신은 gitrm을 사용해야 합니다.
이제야 알 것 같아요.
파일을 변경하는 경우file_a.txt
그리고 나서 하라.
git add file_a.txt
rm file_a.txt
git commit -m 'Commit message'
파일이 작업 디렉토리(예: 디스크에서 또는 휴지통으로 이동)에서 제거되더라도 준비 영역에서는 제거되지 않으므로 준비 영역(예: 인덱스)의 변경 사항이 커밋됩니다.
만약 당신이 대신 한다면,
git add file_a.txt
git rm file_a.txt
git commit -m 'Commit message'
파일이 디스크와 준비 영역에서 삭제되므로 변경 내용이 커밋되지 않습니다.
마지막으로 약속을 한 후에 다음 중 하나를 수행합니다.
rm file_a.txt
git commit -m 'Commit message'
또는
git rm file_a.txt
git commit -m 'Commit message'
준비 영역이나 색인에 변경사항을 추가하지 않았기 때문에 작업 디렉토리에 파일의 복사본만 있으므로 두 명령 모두 동일한 영향을 미칩니다.
그래서 요약하자면rm
스테이징 영역이 아닌 디스크에서만 제거됩니다.git rm
디스크와 준비 영역(일반 창 또는 Linux 명령으로는 도달할 수 없는 특수 깃 영역)에서 제거됩니다.
git rm
보다 안전합니다.rm
Windows 또는 MacOS와 같이 대소문자를 구분하지 않는 시스템을 사용하는 경우도 있습니다.다음은 특정한 예입니다.
대/소문자를 구분하지 않는 시스템의 Git 저장소에 다음과 같은 이름의 커밋된 파일이 있다고 가정해 보겠습니다.foo.js
실행 시 오류가 발생할 수 있습니다.git rm Foo.js
하지만 그렇지 않습니다.rm Foo.js
대신.
언급URL : https://stackoverflow.com/questions/7434449/why-use-git-rm-to-remove-a-file-instead-of-rm
'programing' 카테고리의 다른 글
perl - 데이터베이스에서 여러 요청을 보냅니다. (0) | 2023.07.23 |
---|---|
각진 js에 사용된 것과 같은 매개 변수로 명명된 유형 스크립트? (0) | 2023.07.18 |
루비 온 레일즈에서 현재 절대 URL을 얻으려면 어떻게 해야 합니까? (0) | 2023.07.18 |
git-upload-pack: 명령을 찾을 수 없음, 원격 Gitrepo 복제 시 (0) | 2023.07.18 |
파이썬 스크립트에서 파이썬패스를 설정하려면 어떻게 해야 합니까? (0) | 2023.07.18 |