programing

단일 파일 하드 리셋

powerit 2023. 4. 13. 21:16
반응형

단일 파일 하드 리셋

단일 파일에 대한 변경 내용을 삭제하고 새로운 HEAD 복사본으로 덮어쓰려면 어떻게 해야 합니까? git reset --hard1월 1일

my-file.txtGit 덱 HEAD 。

git checkout HEAD -- my-file.txt

--는 "이 포인트 뒤의 모든 인수를 파일명으로 지정"을 의미합니다.자세한 내용은 이 답변을 참조하십시오.이 점을 지적해 주신 VonC 씨 덕분입니다.

Git 2.23 (2019년 8월)부터 (자세한 정보)를 이용하실 수 있습니다.

git restore pathTo/MyFile

됩니다.MyFileHEAD을 사용하다

다른 커밋에서 변경을 가져오려면 커밋 이력을 되돌릴 수 있습니다.는 다음 the the the the the the the the the 。MyFile마지막 커밋보다 두 개의 커밋이 앞에 있습니다.에서, 「」가 필요하게 되었습니다.-s )--source ) .master~2 andmaster 송신원:( 「」) 「」를 참조해 주세요.

git restore -s master~2 pathTo/MyFile

다른 지점에서도 파일을 받을 수 있습니다!

git restore -s my-feature-branch pathTo/MyFile

헤드로 재설정:

단일 파일을 HEAD로 하드 리셋하려면:

git checkout @ -- myfile.ext

:@ 말하다HEAD형식이 되지 않을 수 . 이전 버전의 git은 짧은 형식을 지원하지 않을 수 있습니다.

인덱스로 재설정:

인덱스가 비어 있지 않다고 가정하고 인덱스에 단일 파일을 하드 리셋하려면 다음 절차를 수행합니다. 그렇지 않으면 HEAD로 이동합니다.

git checkout -- myfile.ext

요점은 인덱스로만 리셋하는 경우를 제외하고 안전을 위해 명령어를 생략하거나 명령어에서 제외하지 않는 것이 좋습니다.

업스트림/마스터 작업으로 되돌리려면:

git checkout upstream/master -- myfile.txt

HEAD를 참조할 필요는 없습니다.

git checkout -- file.js

다음 명령을 사용할 수 있습니다.

git checkout filename

파일명이 같은 브랜치가 있는 경우는, 다음의 커맨드를 사용할 필요가 있습니다.

git checkout -- filename

다음 명령을 사용하여 단일 파일을 리셋할 수 있습니다.

git checkout HEAD -- path_to_file/file_name

된 모든 하여 ""를 가져옵니다.path_to_file/filename

git status

다음 명령을 사용할 수 있습니다.

git reset -- my-file.txt

이 모두 됩니다.my-file.txt가가시 。

특히 git이 익숙하지 않은 경우, 간단하고, 간단한, 직접 조작할 수 있는 방법:

  1. 파일 로그 보기

    git log myFile.js

    1023057173029091u23f01w276931f7f42595f84f 작성자:kmiklas 날짜:8월 7일 (화) 09:29:34 2018-0400

    JIRA-12345 - 새로운 아키텍처 리팩터

  2. 파일의 해시를 메모합니다.

    1023057173029091u23f01w276931f7f42595f84f

  3. 해시를 사용하여 파일을 표시합니다.원하는 제품인지 확인합니다.

    git show 1023057173029091u23f01w276931f72595f84f:.myFile.js

  4. 파일을 로컬 복사본으로 리디렉션

    git show 1023057173029091u23w276931f7f42595f84f:.myFile.js>myFile.07aug2018.js

  5. 현재 파일을 백업합니다.

    cp myFile.js myFile.bak.js

  6. 즐겨찾기 텍스트 편집기에서 두 파일을 모두 엽니다.

    vim myFile.js
    vim myFile.07aug2018.js

  7. myFile.07aug2018.js에서 myFile.js로 n' 페이스트 코드를 복사하여 저장합니다.

  8. myFile.js 커밋 및 푸시

  9. 로그를 다시 보고 파일이 올바르게 배치되었는지 확인합니다.

  10. 고객에게 최신 버전을 가져오라고 말합니다. 이전 버전이 설치된 상태에서 즐겁게 작동되는 것을 보십시오.

가장 섹시하거나 가장 git 중심적인 솔루션은 아니며, 확실히 "수동" 리셋/리버전에도 효과가 있습니다.git에 대한 최소한의 지식이 필요하며 커밋 이력을 방해하지 않습니다.

언급URL : https://stackoverflow.com/questions/7147270/hard-reset-of-a-single-file

반응형