특정 프로젝트의 자식 저장소를 복제했습니다. 파일을 초기 상태로 돌릴 수 있고 파일을 검토 할 때 개정 2, 3, 4 … 가장 최근 항목으로 이동합니까? 프로젝트가 어떻게 발전하고 있는지에 대한 개요를 갖고 싶습니다.
답변
git checkout <sha1>
특정 커밋을 체크 아웃하는 데 사용 합니다.
답변
특정 버전 / 커밋으로 이동하려면 다음 명령을 실행하십시오. 당신이 얻을 수있는 해시 코드git log --oneline -n 10
git reset --hard HASH-CODE
주 – 특정 버전 / 커밋으로 재설정 한 후 git pull --rebase
폐기 된 모든 커밋을 다시 가져 오려면을 실행할 수 있습니다 .
답변
와 같은 도구를 사용하여 프로젝트 히스토리를 그래픽으로 볼 수 있습니다 gitk
. 그냥 실행 :
gitk --all
특정 지점을 체크 아웃하려면 다음을 수행하십시오.
git checkout <branch name>
특정 커밋의 경우 분기 이름 대신 SHA1 해시를 사용하십시오. (참조 Treeishes 에서 힘내 커뮤니티 도서 좋은 읽기입니다, 당신의 나무를 탐색하기위한 다른 옵션을 볼 수 있습니다.)
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>
답변
나는 우리에게 마스터 브랜치가 있고 17.0이라는 또 다른 브랜치가있는 상황에 있었고이 17.0 안에는 “XYZ” 라는 커밋 해시가있었습니다 . 그리고 XYZ 개정판까지 고객에게 빌드가 제공됩니다. 이제 버그가 발생하여 해당 고객을 위해 해결해야합니다. 따라서 “xyz”해시까지 해당 고객에 대해 별도의 지점을 만들어야합니다. 그래서 내가 한 일이 여기에 있습니다.
먼저 로컬 컴퓨터에 해당 고객 이름으로 폴더를 만들었습니다. 해당 폴더가 생성되면 고객 이름이 “AAA”라고 말하고이 폴더 내에서 다음 명령을 실행하십시오.
- 자식 초기화
- git clone 이 명령 후에는 마스터 브랜치에있게됩니다. 원하는 지점으로 전환
- 자식 체크 아웃 17.0 커밋이있는 지점으로 이동합니다
- git checkout 이것은 해시 커밋까지 저장소를 가져옵니다. 커밋 해시 번호로 변경 된 ur 분기의 이름을 참조하십시오. 이제이 해시에 지점 이름을 지정하십시오.
- 자식 분기 ABC 로컬 컴퓨터에 새 분기를 만듭니다.
- 자식 체크 아웃 ABC
- git push origin ABC git push origin ABC 이 분기를 원격 저장소로 푸시하고 git 서버에 분기를 만듭니다. 끝났습니다.
답변
한 가지 방법은 패치에 대한 모든 커밋을 만드는 것입니다. 초기 커밋을 확인한 다음 읽은 후 순서대로 패치를 적용하십시오.
사용 git format-patch <initial revision>
후 git checkout <initial revision>
. 감독은 4 자리 숫자로 시작하여 파일 더미를 가져와야합니다.
개정판을 다 읽었을 때 git apply <filename>
어떤 모양
git apply 0001-*
과 계산이 필요한지 확인하십시오.
그러나 왜 패치 자체를 대신 읽고 싶지 않을까요? 궁금해서 의견을 적어주십시오.
자식 매뉴얼도 나에게 이것을 제공합니다 :
git show next~10:Documentation/README
다음 지점의 마지막 10 번째 커밋에서 현재 상태 인 Documentation / README 파일의 내용을 표시합니다.
또한 git blame filename
각 줄이 커밋 해시 + 작성자와 관련된 목록을 제공합니다.
답변
커밋 된 특정 코드를 얻으려면 해당 커밋 의 해시 코드 가 필요합니다 . 해시 코드는 두 가지 방법으로 얻을 수 있습니다.
- github / gitlab / bitbucket 계정에서 가져옵니다. (커밋 URL에 있습니다 (예 : github.com/user/my_project/commit/commit_hash_code ) 또는
git log
해당 지점에서 최근 커밋을 확인하십시오. 커밋의 해시 코드와 코드를 커밋하는 동안 떠난 메시지가 표시됩니다. 그냥 복사 한 다음git checkout commit_hash_code
해당 코드로 이동 한 후 작업하고 변경하려면을 사용하여 다른 분기를 작성해야합니다 git checkout -b <new-branch-name>
. 그렇지 않으면 변경 사항이 유지되지 않습니다.