Programing

이전 git-commit을 복제하는 방법 (및 git에 대한 추가 질문)

crosscheck 2020. 10. 27. 07:50
반응형

이전 git-commit을 복제하는 방법 (및 git에 대한 추가 질문)


약 20 개의 커밋이있는 프로젝트의 git-repository가 있습니다. 실제 커밋을 복제하는 방법을 알고 있습니다 git clone.

  • 하지만 이전 커밋을 어떻게 "복제"할 수 있습니까?
  • 정말 좋은 git-GUI qgit가 있습니까 (imho 는 좋은 GUI가 아닙니다)?
  • "가지"는 정확히 무엇입니까?
  • 0.1, 0.2 등을 릴리스하고 싶을 때 이러한 커밋을 git에 표시하는 가장 좋은 방법은 무엇입니까?
  • svn의 큰 차이점은 무엇입니까?

git 저장소에는 항상 모든 기록이 포함됩니다.
따라서 저장소를 복제 할 때 전체 기록을 사용하여 복제 한 다음 원하는 커밋에서 분기를 만들 수 있습니다.

 $ git checkout -b aNewBranch SHA1

진행하려는 커밋 ID를 나타내는 SHA1이 있습니다.


Git의 분기 는 Git 리포지토리의 기록을 나타내는 커밋 집합 인 DAG (Directed Acyclic Graph) 의 한 경로를 추적하는 방법 일뿐 입니다.
이는 해당 커밋 중 하나에 할당하는 단순한 포인터이며 각 새 커밋과 함께 계속 이동합니다.

가지

자세한 내용은 Pro Git 책을 참조하십시오 .


특정 커밋을 태그로 표시 할 수 있습니다 . 태그 는 분기처럼 단순한 포인터이지만 변경 불가능한 것입니다 (새 커밋을 만들 때 이동하지 않음). Git 데이터베이스에 전체 객체로 저장되는 주석이 달린 태그
를 사용하는 것이 좋습니다 . 체크섬입니다. 태거 이름, 이메일 및 날짜를 ​​포함합니다. 태그 메시지가 있습니다. GPG (GNU Privacy Guard)로 서명하고 확인할 수 있습니다.


Git Wiki InterfacesFrontendsAndTools 페이지 의 "그래픽 인터페이스"섹션 에는 현재 Git 용 다양한 GUI가 나열되어 있습니다.


Git과 SVN의 차이점에 대한 많은 질문을 볼 수 있습니다. 예를 들어 내 대답 (또는 this one )을 참조하십시오 .
Git과 SVN의 근본적인 차이점에 대한 나의 가장 완전한 대답은
"둘 중 어느 것이 더 나은지 : git 또는 SVN" 입니다.


이 게시물에는 몇 가지 질문이 있습니다. 여기에 몇 가지 답변이 있습니다.

먼저, 이전 커밋을 "복제"하려면 다음과 같이 할 수 있습니다.

git clone REPO_URL
git checkout HEAD~1 // checks out the last commit's first parent

~1마지막 커밋의 첫 번째 부모에 액세스하는 데 사용 하고 부모의 부모 등을 가져 오려면 숫자를 증가시킵니다. 물결표 및 캐럿 표기법에 대해 자세히 알아보십시오 .

위의 두 명령은 컨텍스트에 따라 중요하거나 중요하지 않을 수있는 분리 된 HEAD 상태로 만듭니다. 예를 들어 배포 스크립트의 일부로 복제하고 관심있는 모든 것이 이전 커밋에 액세스하는 것 (예 : 롤백 전략의 일부) 인 경우에는 중요하지 않습니다.

이 시점부터 작업을 시작해야하는 경우 다음을 실행할 수 있습니다.

git checkout -b NEW_BRANCH_NAME

좋은 git GUI? 저에게는 SourceTree 가 최고입니다.

브랜치는 무엇입니까? 제 말로 브랜치는 피벗하는 아주 쉬운 방법입니다. 한 지점에서 작업 중이고 master실험을 시도하고 싶다고 가정 해 보겠습니다. 쉽고, git checkout -b experiment당신은 물건을 부술 수있는 안전한 장소에 빨리 있습니다.

git과 svn의 차이점은 무엇입니까?

git은 배포 버전 제어 시스템 입니다. svn은 아닙니다. 또한 git에서는 분기 (위에서 언급)가 더 쉽습니다.

태깅을 위해 "One True Way"가 있는지 모르겠지만 (존재 했습니까?) git tag명령 만 살펴보십시오 . git에 대한 한 가지 좋은 점은 로컬 컴퓨터 (또는 어디서든)에서 저장소의 복제본을 복제하고 원하는 작업을 수행하고 어떤 일이 발생하는지 확인하는 것이 얼마나 쉬운 지입니다. 엉망이 된 경우 디렉토리를 삭제하십시오. 따라서 git tag일부 테스트 디렉토리에서 실험하고 원하는 것을 볼 수 있습니다.

참고 URL : https://stackoverflow.com/questions/1655361/how-to-clone-an-old-git-commit-and-some-more-questions-about-git

반응형