이전 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
일부 테스트 디렉토리에서 실험하고 원하는 것을 볼 수 있습니다.
'Programing' 카테고리의 다른 글
시스템에 설치된 애플리케이션 가져 오기 (0) | 2020.10.27 |
---|---|
JavaScriptSerializer.Deserialize-필드 이름을 변경하는 방법 (0) | 2020.10.27 |
5 개의 오류 후에 GCC를 중지하도록 지시하는 방법은 무엇입니까? (0) | 2020.10.27 |
Python 정수 범위 (0) | 2020.10.27 |
data.frame에서 누락 된 값을보고하는 우아한 방법 (0) | 2020.10.26 |