이전 커밋에서 파일 복원
나는 몇 주 전에 했던 오래된 약속이 있습니다.해당 커밋에서 하나의 파일만 복원합니다.내가 어떻게 해야 하나요?
git checkout 'master@{7 days ago}' -- path/to/file.txt
HEAD는 변경되지 않고 로컬 파일만 덮어씁니다.path/to/file.txt
가능한 리비전 사양은 mangit-rev-parse를 참조하십시오(물론 간단한 해시).dd9bacb) 잘 될 것입니다.
(검토 후...) 변경 사항을 커밋하는 것을 잊지 마십시오.
- 다음을 통해 이전 커밋에서 파일을 체크아웃합니다.
git checkout [Revision_Key] -- path/to/file. - 필요에 따라 추가, 커밋, 푸시를 수행합니다.
모든 답변 언급git checkout <tree-ish> -- <pathspec>git v2.23.0 기준으로 새로운 git 복원 방법이 있으며, 이 방법은 다음의 일부를 가정해야 합니다.git checkout책임이 있었습니다.github 블로그에서 변경사항의 주요 내용을 확인하십시오.
이 명령의 기본 동작은 작업 트리의 상태를 복원하는 것입니다.source매개 변수(이 경우 커밋 해시가 됩니다.
커밋 해시를 다음과 같이 가정합니다.abcdef명령은 다음과 같습니다.
git restore --source=abcdef file_name
(기본적으로) 작업 트리에 저장합니다.변경 내용을 인덱스에 직접 저장하여 즉시 커밋할 수 있도록 하려면 다음을 수행합니다.
git restore --source=abcdef --worktree --staged file_name
또는 짧은 옵션 이름을 사용합니다.
git restore -sabcdef -W -S file_name
Git에 커밋된 최근 파일을 복원해야 했습니다.따라서 반복하고 다른 관점을 제시하기 위해서는 다음 두 단계를 실행해야 합니다.
git log -3
여기에는 가장 최근의 세 가지 커밋이 표시됩니다.댓글과 작성자 이름을 읽고 원하는 정확한 버전을 좁힙니다.긴 커밋 ID(예:b6b94f2c19c456336d60b9409fb1e373036d3d71) 원하는 커밋 버전입니다.git checkout b6b94f2c19c456336d60b9409fb1e373036d3d71 -- myfile.java
복원할 커밋 ID와 파일 이름을 전달합니다.이중 하이픈 앞뒤에 공백이 있는지 확인합니다.
그 외에도 여러 가지 방법이 있지만 이것이 제가 기억하는 가장 간단한 방법입니다.
참고: 프로젝트 경로/폴더 내부에 있는 경우 체크아웃 명령에 전체 파일 경로를 입력할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/6624036/restore-file-from-old-commit-in-git
'programing' 카테고리의 다른 글
| .NET 4.0 프로젝트에서 .NET 2.0 혼합 모드 어셈블리를 참조하려면 어떤 '추가 구성'이 필요합니까? (0) | 2023.05.20 |
|---|---|
| 바인딩의 기본값은 무엇입니까?Mode= WPF 컨트롤의 기본값은 무엇입니까? (0) | 2023.05.20 |
| 셸 스크립트에서 문자열이 비어 있지 않거나 공백이 아닌지 확인 (0) | 2023.05.20 |
| 스트림을 C#의 파일에 저장하려면 어떻게 해야 합니까? (0) | 2023.05.15 |
| POST를 통해 파라미터를 Azure 함수로 전달하는 방법은 무엇입니까? (0) | 2023.05.15 |