전체 git 자습서 : 003—Git 버전 관리 (버전 업데이트 및 롤백)

업데이트 된 버전

파일 수정

readme.txt가 이전에 생성되었으므로 이제 내용을 업데이트하십시오.

Git is a version control system.
Git is free software.The 1st update

이때 지침을 입력 git status
여기에 사진 설명 삽입
git status하면 창고의 현재 상태를 추적 할 수 있습니다.

마지막 문장은 다음과 같이 알려줍니다. readme.txt수정되었지만 아직 커밋되지 않았습니다 (커밋).

수정 된 콘텐츠보기

git status명령을 사용하여 파일이 수정되었음을 알 수 있지만 무엇이 수정되었는지는 알 수 없습니다.
예를 들어 봄 축제가 끝난 후 다시 일할 때 이전에 수정 한 내용을 잊어 버린 경우 다음 명령
사용해야합니다.git diff

git diff readme.txt

여기에 사진 설명 삽입
위의 출력에서 ​​마지막 줄에 텍스트 단락을 추가했음을 알 수 있습니다.

업데이트 및 제출

우리는 git diff수정 된 내용을 볼 수 있고, 그것을 알고 후, 우리는 안전하게 창고로 제출할 수 있습니다.

첫 번째 단계git add

git add readme.txt

문제가 없음을 나타내는 출력이 없습니다.

두 번째 git commit제출을 수행하기 전에 git status창고의 현재 상태를 살펴 보겠습니다.

git status

여기에 사진 설명 삽입
여기에서 제출할 readme.txt파일 을 볼 수 있으며
녹색은 작업 영역을 나타냅니다. 다음 기사에서 이에 대해 설명하겠습니다.

두번째 단계git commit

git commit -m "the 1st update"

여기에 사진 설명 삽입

마지막으로 git git status상태를 확인하면
여기에 사진 설명 삽입
현재 제출해야 할 변경 사항이 없으며 작업 디렉토리가 깨끗하다는 것을 알 수 있습니다.

버전 롤백

버전 롤백 전에 연습을하시면 업데이트 된 버전
readme.txt다음과 같이 수정됩니다.

Git is free software.The 2st update

창고에 추가하는 방법을 직접 연습 해보세요. 이전 내용을 잊은 경우

  • 이와 같은 파일을 계속 수정하고 업데이트 한 다음 계속해서 저장소에 제출하십시오.
    RPG 게임을하는 것처럼 레벨을 통과 할 때마다 게임 진행 상황이 자동으로 저장되며, 특정 레벨을 통과하지 못한 경우 이전 레벨의 아카이브를 열람하도록 선택할 수 있습니다. 때로는 보스를 치기 전에 수동으로 디스크를 저장하여 보스의 타격이 실패하면 가장 가까운 곳에서 다시 시작할 수 있습니다.

  • Git은 동일합니다. 파일이 어느 정도 수정되었다고 느낄 때마다 "스냅 샷을 저장"할 수 있습니다.이 스냅 샷을 Git에서 commit이라고합니다. 파일을 엉망으로 만들거나 실수로 파일을 삭제 한 후에는 마지막 커밋에서 복원하고 몇 달 간의 작업 결과를 모두 잃는 대신 작업을 계속할 수도 있습니다.

업데이트 내역보기

파일 읽기를 위해 게임을 준비 할 때 모든 아카이브를 확인해야하며, 버전 업데이트에 문제가있는 경우 이전 버전을 모두 확인해야합니다.

여기서 우리는 스스로 검토합니다.

원본

Git is a version control system.
Git is free software.

첫 번째 업데이트

Git is a version control system.
Git is free software.The 1st update

두 번째 업데이트

Git is free software.The 2st update

물론 직장에서는 위와 같이 명확하게 기억할 수 없으며 결국 수백 줄의 코드가 작동합니다.
수행하는 방법?

사용하다git log
여기에 사진 설명 삽입

빨간색 상자는 git commit -m "xxxxxx"따옴표로 묶인 로그 입니다.

출력 정보가 ​​너무 많으면 --pretty=omline매개 변수 를 추가 할 수 있습니다 .

git log --pretty=oneline

여기에 사진 설명 삽입
이것은 약간 상쾌
하지만 제출자와 이메일 주소가 없어도 여전히 업데이트 시간이 있습니다.

노란색 문자열은 commit id(버전 번호)로 SVN과 다릅니다. Git commit id은 1, 2, 3이 아니지만 SHA1에 의해 계산 된 16 진수로 표현 된 매우 큰 숫자이며 커밋 ID는 확실히 내 것과 동일하지 않습니다. , 자신에 따라 다릅니다.

commit id(버전 번호) 가있는 이유

버전 번호를 사용하여 반환 할 버전, 즉 게임 저장을 선택할 수 있습니다.

Git은 분산 버전 관리 시스템이기 때문에 나중에 동일한 버전 라이브러리에서 작업하는 여러 사람을 연구 할 것입니다. 모든 사람이 버전 번호로 1, 2, 3 ...을 사용하면 확실히 충돌 할 것입니다.

새 버전이 제출 될 때마다 Git은 실제로 자동으로 타임 라인에 연결합니다. 시각화 도구를 사용하여 Git 기록을 보는 경우 커밋 기록의 타임 라인을 더 명확하게 볼 수 있습니다.

여기에 사진 설명 삽입

버전 롤백

점프하려면 먼저 현재 버전을 알아야합니다.

Git에서 :

  • HEAD현재 버전을 나타냅니다.
  • HEAD^이전 버전을 나타냅니다.
  • HEAD^^이전 버전을 나타냅니다.
  • HEAD~100최근 100 개 버전을 나타냅니다.

이제 현재 버전 the 2st update을 이전 버전으로 롤백 the 1st update하려면 다음 git reset명령을 사용할 수 있습니다.

git reset --hard HEAD^

여기에 사진 설명 삽입
--hard매개 변수의 의미는 무엇입니까? 나중에 얘기하겠습니다. 이제 자유롭게 사용하세요

readme.txt콘텐츠 살펴보기

cat readme.txt

여기에 사진 설명 삽입
물론입니다. 복원되었습니다.

이전 버전으로 돌아 가기

롤백 후 후회하면 어떻게해야하나요?
먼저 확인 git log
여기에 사진 설명 삽입
하고 두 번째 업데이트가 사라 졌는지 확인하십시오 . 마치 타임머신을 사용하여 과거로 돌아가 미래로 돌아갈 수없는 것과 같습니다. 어떻게해야합니까?

창이 닫히지 않으면 찾을 수 있습니다 commit id. 내 최신 버전 commit id5aa1503e270a325654e435872e12c2769253e6e5

그런 다음 우리는git reset --hard 版本号

git reset --hard 5aa15

여기에 사진 설명 삽입
실제로 버전 번호를 작성할 필요가 없으므로 처음 몇 자리 만 작성하면 Git에서 자동으로 찾을 수 있습니다.
물론 Git이 여러 버전 번호를 찾을 수 있고 어떤 버전인지 확인할 수 없기 때문에 한두 개만 작성할 수는 없습니다.

readme.txt
여기에 사진 설명 삽입
지금 또 돌아 왔어

찾을 수 없으면 commit id어떻게합니까?
Git은 사용자가 만드는 git reflog모든 명령을 기록
여기에 사진 설명 삽입
하고 버전 번호를
볼 수 있으며 git reset --hard 版本号다시 전달할 수 있습니다 .

Git 버전 전환 원리

Git은 내부적으로 현재 버전에 대한 HEAD 포인터를 가지고 있기 때문에 Git의 버전 롤백 속도는 매우 빠릅니다. 버전을 롤백 할 때 Git은the 2st update

┌────┐
│HEAD│
└────┘

└──> ○ 2ST 갱신
      │
      ○ 1 차 업데이트
       │
      ○ 쓴 readme 파일

改为 指向the 1st update
┌────┐
│HEAD│
└────┘

│ ○ 2 차 업데이트
│ │
└──> ○ 1 차 업데이트
       │
      ○ readme 파일 작성

포인트가 변경되면 Git은 작업 공간의 파일을 업데이트합니다.
즉, HEAD가리 키려는 버전을 찾을 수 있습니다.

추천

출처blog.csdn.net/qq_28258885/article/details/114982509