특정 리비전으로 이동
특정 프로젝트의 깃 저장소를 복제했습니다.파일을 초기 상태로 전환하고 파일을 검토할 때 2, 3, 4... 최신 버전으로 이동할 수 있습니까?프로젝트가 어떻게 발전하고 있었는지에 대한 개요를 알고 싶습니다.
이 명령을 실행하기 전에 헤드가 분리된 상태로 유지됩니다.
사용하다git checkout <sha1>
특정 커밋을 확인합니다.
에▁where디<sha1>
는 를사여 얻수있커고번유호다니입밋으로 수 입니다.git log
다음은 분리된 헤드 상태가 된 후의 몇 가지 옵션입니다.
- 폴더 하고, 한 경우 합니다. Git 더 외 부 폴 폴 복 내 변 경 분 필 다 체 를 웃 합 아 니 크 기 우 한 요 후 한 을 경 용 한 요 필 하 의 거 나 더 파 사 에 을 일 ▁copy ▁were it 다 ▁the ▁checkout ▁you ▁branch 니 합 , ▁that ▁your ▁outside 웃 ▁folder ▁g
git checkout <existingBranch>
- 지점
git checkout -b <new_branch_name> <sha1>
참고: 분리된 헤드 상태를 "실행 취소"(복귀)하려면 다음을 사용합니다.
git checkout <branch>
서)<branch>
예를 들어,master
).
특정 버전/커밋으로 이동하려면 다음 명령을 실행합니다.얻을 수 있는 해시 코드git log --oneline -n 10
git reset --hard HASH-CODE
참고 - 특정 버전/커밋으로 재설정한 후 실행할 수 있습니다.git pull --rebase
삭제된 모든 커밋을 되돌리려면 이 옵션을 선택합니다.
다음과 같은 도구를 사용하여 프로젝트 기록을 그래픽으로 볼 수 있습니다.gitk
그냥 실행:
gitk --all
특정 분기를 체크아웃하려는 경우:
git checkout <branch name>
특정 커밋의 경우 지점 이름 대신 SHA1 해시를 사용합니다.트리 탐색을 위한 다른 옵션을 보려면 Git 커뮤니티 북의 Treeish를 참조하십시오.
git log
에는 상세 내역 또는 요약 내역을 표시할 수 있는 전체 옵션 집합이 있습니다.
저는 커밋 히스토리에서 앞으로 나아가는 쉬운 방법을 모릅니다.선형 이력이 있는 프로젝트는 일반적이지 않을 수 있습니다.SVN이나 CVS와 같은 "개정"에 대한 아이디어는 Git에서 그렇게 잘 매핑되지 않습니다.
커밋의 SHA1 키를 사용하여 다음을 수행할 수 있습니다.
먼저 특정 파일에 대해 원하는 커밋을 찾습니다.
git log -n <# commits> <file-name>
이것은 당신의 다을기합니다에
<# commits>
특정 파일에 대한 커밋 목록을 생성합니다.어떤 약속을 명령을 하는 것이 명령은 과 같습니다.
git diff <commit-SHA1>..HEAD <file-name>
이 명령은 특정 파일에 대한 현재 버전의 커밋과 이전 버전의 커밋 간의 차이를 표시합니다.키은 "": "" "SHA1" ""입니다.
git log -n
은 다음과 같습니다.
지다를
<SHA1 id>
둘째, 원하는 버전을 확인합니다.
커밋 다음.
git checkout <desired-SHA1> <file-name>
지정한 파일의 버전이 준비 영역에 배치됩니다..
reset HEAD <file-name>
다음하십시오.git checkout HEAD <file-name>
특정 커밋된 코드로 이동하려면 해당 커밋의 해시 코드가 필요합니다.이 해시 코드는 두 가지 방법으로 얻을 수 있습니다.
- github/gitlab/bitbucket 계정에서 가져옵니다.(commit url(예: github.com/user/my_project/commit/commit_hash_code), )에 있습니다.
git log
해당 분기에 대한 최근 커밋을 확인합니다.커밋의 해시 코드와 코드를 커밋하는 동안 남긴 메시지가 표시됩니다. 복한다수행음사수행▁copy▁just다.git checkout commit_hash_code
해당 코드로 이동한 후 작업하고 변경하려면 다음을 사용하여 다른 분기를 만들어야 합니다.git checkout -b <new-branch-name>
그렇지 않으면 변경 내용이 유지되지 않습니다.
저는 마스터 브랜치가 있고, 그리고 나서 17.0이라는 다른 브랜치가 있고, 이 17.0 안에는 "XYZ"라는 커밋 해시가 있었습니다.XYZ 개정 전까지는 고객에게 빌드가 제공됩니다.이제 버그를 발견했는데 그 고객을 위해 해결해야 합니다.따라서 "xyz" 해시가 발생할 때까지 해당 고객을 위해 별도의 지점을 만들어야 합니다.제가 이렇게 했습니다.
먼저 로컬 컴퓨터에 해당 고객 이름으로 폴더를 만들었습니다.폴더가 생성되면 고객 이름이 "AAA"라고 입력하고 이 폴더 내에서 다음 명령을 수행합니다.
- 잽싸게
- git clone 이 명령을 실행하면 마스터 분기에 있게 됩니다.원하는 지점으로 전환합니다.
- git checkout 17.0 그러면 커밋이 있는 지점으로 이동합니다.
- git checkout 해시 커밋까지 리포지토리를 가져옵니다.해당 commit hash no로 변경된 지점의 이름을 참조하십시오.이제 이 해시에 분기 이름을 지정합니다.
- git branch ABC 로컬 컴퓨터에 새 branch를 만듭니다.
- git checkout ABC
- git push origin ABC 이 분기를 원격 리포지토리로 푸시하고 git 서버에 분기를 만듭니다.끝났습니다.
한 가지 방법은 패치에 대해 수행된 모든 커밋을 만드는 것입니다.초기 커밋을 확인한 다음 읽은 후 순서대로 패치를 적용합니다.
사용하다git format-patch <initial revision>
그리고 나서.git checkout <initial revision>
당신은 당신의 디렉터에 패치인 4자리 숫자로 시작하는 파일 더미를 얻어야 합니다.
당신이 당신의 개정판을 다 읽었으면 그냥 하세요.git apply <filename>
처럼 보여야 하는 것.git apply 0001-*
그리고 세어보세요.
그런데 왜 패치 자체를 읽지 않으시는지 정말 궁금합니다.궁금하니까 댓글로 올려주세요.
Git 설명서에서도 다음과 같은 정보를 제공합니다.
git show next~10:Documentation/README
Documentation/README 파일의 내용을 다음 분기의 마지막 10번째 커밋에서 최신 상태로 표시합니다.
당신은 또한 볼 수 있습니다.git blame filename
각 행이 커밋 해시 + 작성자와 연결된 목록을 제공합니다.
언급URL : https://stackoverflow.com/questions/7539130/go-to-particular-revision
'programing' 카테고리의 다른 글
Excel-VBA에서 SQL 데이터베이스 액세스 (0) | 2023.05.17 |
---|---|
WPF의 활성 창을 참조하시겠습니까? (0) | 2023.05.17 |
여러 줄의 JSON으로 컬 (0) | 2023.05.17 |
새로 추가된 파일을 포함하여 모든 파일을 단일 명령으로 스테이징하고 커밋하려면 어떻게 해야 합니까? (0) | 2023.05.17 |
경로가 ':mypath'인 프로젝트를 루트 프로젝트 'myproject'에서 찾을 수 없습니다. (0) | 2023.05.17 |