Git의 파일에 대한 변경 사항을 선택적으로 되돌 리거나 체크 아웃 하시겠습니까?
작업 디렉토리의 파일 (또는 파일)에 대한 변경 사항을 부분적으로 취소 할 수있는 명령이 있습니까?
파일을 많이 편집했지만 일부 변경 사항을 커밋 된 상태로 되돌리고 다른 변경 사항은 실행 취소하려고한다는 것을 알고 있다고 가정합니다.
나는에 대한 옵션을 구상하고있어 git checkout
그처럼 많이 작동 git add -p
, 그것은 덩어리하여 파일 덩어리를 통과하고 당신이 그것을 유지 여부를할지 묻는 즉.
당신은 사용할 수 있습니다
git add -p <path>
특정 파일에 보관하려는 청크를 준비한 다음
git checkout -- <path>
파일의 준비된 버전을 확인하여 유지하지 않으려는 작업 트리 변경 사항을 삭제합니다.
마지막으로
git reset -- <path>
파일의 준비된 버전을 파일의 가장 최근 커밋 된 버전으로 되 돌리면 변경 내용이 준비되지 않은 상태로 유지됩니다.
git 버전> = 1.7.1을 사용하면
git checkout -p
이 기능이 언제 도입되었는지 잘 모르겠습니다.
git checkout $file
파일 상태를 $file
마지막 커밋 된 상태로 되돌립니다. git checkout SHA-1 -- $file
SHA-1에 의해 식별 된 커밋으로 파일을 되 돌리는 데 사용할 수 있다고 생각합니다 .
돌아가서 선택하려면 몇 개의 커밋이 필요합니까? 하나 인 경우에는 바로 전에 분기를 가져와 커밋 한 파일을 체크 아웃 한 다음 git add -p
원하는 방식으로 추가하는 데 사용 합니다. 그런 다음 이전 위치로 돌아가 임시 브랜치에서 파일을 체크 아웃 할 수 있습니다.
그건:
git checkout -b temp troublesome-commit^
git checkout troublesome-commit -- path/to/file
git add -p path/to/file
git commit -c troublesome-commit
git checkout @{-1}
git checkout temp -- path/to/file
git commit path/to/file
git branch -D temp
다른 대안으로는 뒤로 돌아가서 커밋을 편집하는 것 (커밋을으로 git rebase -i
표시 edit
한 다음 a git reset HEAD^
를 수행하고 셸로 다시 떨어질 때 커밋을 다시 실행)이 있습니다.
선택해야하는 변경 사항이 일련의 커밋에 분산되어있는 경우 패치 (또는 모두를 포함하는 패치)로 추출하고 패치를 직접 편집하여 유지하려는 변경 사항을 제거하는 것이 좋습니다. 및 잔여 물을 git apply --reverse
.
참고 URL : https://stackoverflow.com/questions/771897/selectively-revert-or-checkout-changes-to-a-file-in-git
'program story' 카테고리의 다른 글
실제 사용자 ID, 유효 사용자 ID 및 저장된 사용자 ID의 차이점 (0) | 2020.09.19 |
---|---|
JavaScript : 값으로 객체를 전달하는 방법? (0) | 2020.09.18 |
Android에서 홈 버튼 누름 감지 (0) | 2020.09.18 |
명령 출력에 쉘 스크립트의 특정 문자열이 포함되어 있는지 확인 (0) | 2020.09.18 |
미국 달러 금액을 나타내는 데 사용하는 가장 좋은 장고 모델 필드는 무엇입니까? (0) | 2020.09.18 |