[git] 로컬 웨어하우스 동기화 원격 웨어하우스 삭제, 추가, 롤백, 해제

1. gitlab에 작업 업데이트 프로젝트 삭제

  1. git bash를 열고 git rm -r --cached filename을 입력합니다. 여기서 filename은 파일 이름입니다. 워크스페이스 파일을 삭제하지 않고 웨어하우스 파일만 삭제할 경우 --cached를 반드시 추가해야 하며 그렇지 않으면 워크스페이스 파일도 함께 삭제됩니다.
  2.  그런 다음 git commit -m 'delete',
  3.  git push는 원격 웨어하우스에 제출할 수 있으며 이때 원격 웨어하우스 파일도 업데이트됩니다.

2. gitlab에 작업 업데이트 프로젝트 추가

  1. git bash를 열고 git add를 입력합니다. ;
  2. 그런 다음 git commit -m 'describe',
  3. git push는 원격 웨어하우스에 제출할 수 있으며 이때 원격 웨어하우스 파일도 업데이트됩니다.

3. 기타 작동 지침

  • .idea와 같은 .gitignore 파일을 통해 파일을 보호해야 하는 경우 다음을 수행할 수 있습니다.
  • touch .gitignore .gitignore 파일을 생성한 후 파일에 차폐가 필요한 파일 또는 폴더를 입력합니다.
  • git rm -r --cached .idea 원격 웨어하우스의 파일을 삭제합니다.
  • git add .gitignore 파일을 임시 저장 영역에 추가하고 git add *를 사용하지 않도록 주의하십시오.
  • git commit -m '변경' 로컬 웨어하우스에 제출됨
  • 원격 창고에 제출된 git push origin master
  • git add .와 git add *의 차이점: git add .는 모든 로컬 추적되지 않은 파일을 임시 저장 영역에 추가하고 .gitignore에 따라 필터링하지만 git add *는 .gitignore를 무시하고 파일을 추가합니다.

4. git 버전 롤백 작업이 gitlab으로 업데이트되었습니다.

권장 대체 조치:

첫 번째 유형: 커밋되어 원격 웨어하우스로 푸시됩니다.

  1. git reset --hard (버전 번호 뒤의 커밋 레코드를 취소하고 버립니다).

  2. git revert 버전 번호(버전 번호는 취소할 버전 번호임)
  3. git push 원격 업데이트 웨어하우스로 푸시

두 번째 유형: 커밋되었지만 원격 웨어하우스로 푸시되지 않았습니다.

  1. git reset --soft 버전 번호(이전 버전 번호)
  2. git reset --mixed 버전 번호(이전 버전 번호)

이 문서의 git 관련 명령:

git reset: 특정 제출의 버전을 지정할 수 있는 버전을 롤백합니다. git reset [--soft | --mixed | --hard] 커밋 ID.

git revert: 특정 제출을 취소하고, 역순으로 작업을 수행하고, 새로운 commitId를 생성하고, 원래 제출 기록을 유지합니다. 자식 되돌리기 commitId.

git status: 워크스페이스 및 임시 저장 영역에 있는 파일의 상태를 확인합니다.

git log: 코드 제출 기록을 봅니다.

git cherry-pick: 현재 브랜치에 적용할 commitId를 선택합니다. git cherry-pick commitId.

폴백에는 두 가지 경우가 있습니다.

첫 번째 유형: 커밋되었지만 원격 웨어하우스로 푸시되지 않았습니다.

두 번째 유형: 커밋되어 원격 웨어하우스로 푸시되었습니다.

커밋되었지만 원격 웨어하우스로 푸시되지 않음
git reset --soft (커밋 실행 취소)
터치는 a.text를 생성하고 로컬 웨어하우스에 제출했습니다.

이때 a.text는 롤백되며, git log는 롤백할 버전 번호를 찾습니다. 여기서 버전 번호는 이전 버전입니다. (또는 git reset [HEAD]를 통해 버전 롤백)

명령 실행: git reset --soft 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

아이디어를 통해 커밋 레코드가 취소되었음을 알 수 있습니다.

git reset --mixed (커밋 취소 및 작업 추가)
touch는 새 파일 b.text를 생성하고 로컬 웨어하우스에 제출합니다.

git log를 통해 7ee5305f1e1e0f66c7d69666ff7054fc6e309464로 롤백할 버전 번호 찾기

명령 실행: git reset --mixed 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

이때 git reset --mixed 명령으로 취소된 파일들이 임시 저장 영역에 추가되지 않아 commit과 add 두 동작이 취소된 것을 확인할 수 있다.

커밋되고 원격 웨어하우스로 푸시됩니다.
git reset --hard(버전 번호 뒤의 커밋 레코드 취소 및 삭제)는
새 파일 a.text를 생성하고 원격으로 푸시합니다.

주문 실행:

자식 재설정 --하드 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

git push -f (원격으로 강제 푸시, 이전 커밋을 덮어쓰므로 주의해서 사용)

이 시점에서 커밋 레코드와 파일이 취소된 것을 확인할 수 있습니다. 주의해서 사용하십시오. 권장하지 않습니다.

물론 실수로 git reset --hard 작업을 사용하여 롤백하는 경우 git reflog 명령을 사용하여 명령 기록을 보고 삭제된 커밋을 찾아 다시 작업할 수 있습니다.

git revert (취소하지만 커밋 레코드는 유지)는
새 파일 a.text를 생성하고 원격으로 푸시합니다.

git revert 버전 번호를 통해 현재 제출 기록을 취소합니다. 버전 번호는 취소할 버전 번호이며, 여기에 현재 제출물의 버전 번호가 있습니다.

로컬 및 원격 웨어하우스 파일이 모두 취소되었음을 알 수 있습니다. 그러나 git 로그에서 커밋 및 실행 취소 레코드를 볼 수 있습니다.

이 방법으로 원격 코드를 롤백하는 것이 좋습니다. 예를 들어 마스터 브랜치에 잘못된 파일을 제출하고 롤백해야 하는 경우 이 방법으로 롤백한 다음 git cherry-pick commitId를 사용하여 커밋을 재생합니다. 마지막으로 로컬에서 수정된 다음 원격으로 푸시됩니다.

요약
롤백에는 두 가지 경우가 있습니다.

커밋되었지만 원격 웨어하우스로 푸시되지 않았습니다.
git reset --soft (커밋 취소).

git reset --mixed (커밋 취소 및 작업 추가).

커밋되어 원격 웨어하우스로 푸시되었습니다.
git reset --hard (버전 번호 뒤의 커밋 레코드를 취소하고 버립니다).

git revert(취소하지만 커밋 기록은 유지).

추천

출처blog.csdn.net/weixin_51060040/article/details/127220847