특정 개정으로 이동 있고 파일을 검토 할 때 개정

특정 프로젝트의 자식 저장소를 복제했습니다. 파일을 초기 상태로 돌릴 수 있고 파일을 검토 할 때 개정 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”라고 말하고이 폴더 내에서 다음 명령을 실행하십시오.

  1. 자식 초기화
  2. git clone 이 명령 후에는 마스터 브랜치에있게됩니다. 원하는 지점으로 전환
  3. 자식 체크 아웃 17.0 커밋이있는 지점으로 이동합니다
  4. git checkout 이것은 해시 커밋까지 저장소를 가져옵니다. 커밋 해시 번호로 변경 된 ur 분기의 이름을 참조하십시오. 이제이 해시에 지점 이름을 지정하십시오.
  5. 자식 분기 ABC 로컬 컴퓨터에 새 분기를 만듭니다.
  6. 자식 체크 아웃 ABC
  7. 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각 줄이 커밋 해시 + 작성자와 관련된 목록을 제공합니다.


답변

커밋 된 특정 코드를 얻으려면 해당 커밋 의 해시 코드필요합니다 . 해시 코드는 두 가지 방법으로 얻을 수 있습니다.

  1. github / gitlab / bitbucket 계정에서 가져옵니다. (커밋 URL에 있습니다 (예 : github.com/user/my_project/commit/commit_hash_code ) 또는
  2. git log해당 지점에서 최근 커밋을 확인하십시오. 커밋의 해시 코드와 코드를 커밋하는 동안 떠난 메시지가 표시됩니다. 그냥 복사 한 다음git checkout commit_hash_code

해당 코드로 이동 한 후 작업하고 변경하려면을 사용하여 다른 분기를 작성해야합니다 git checkout -b <new-branch-name>. 그렇지 않으면 변경 사항이 유지되지 않습니다.