명령은 특정 파일을 특정 버전으로 복원하는 데 사용될 수 있습니다. 사용자는 손상된 파일의 "오류 커밋"을 식별 한 다음 명령을 사용하여 잘못된 커밋 전에 파일을 버전으로 복원 할 수 있습니다.
-
git의
- 도구를 사용하여 손실 된 버전 또는 삭제 된 분기를 복원 할 수 있습니다.
는 로컬 저장소에서 모든 헤드 포인터의 움직임을 기록하여 사용자가 이전 상태로 돌아와 손실 된 데이터를 복원 할 수 있습니다. git restore
사용자는 명령을 사용하여 커밋을 다른 지점으로 이동할 수 있습니다. 커밋이 잘못된 지점에 있으면 사용자는 올바른 지점을 확인하고 커밋을 이동 한 다음 -p
를 사용하여 원래 지점에서 원치 않는 커밋을 삭제할 수 있습니다. -
일부 지역 변경 사항을 버립니다 git log
인코딩 프로세스는 일반적으로 혼란 스럽습니다. 때때로 그것은 앞으로 두 단계와 한 걸음 물러나는 것처럼 느껴집니다. 다시 말해 : 당신이 쓴 코드 중 일부는 훌륭하지만 일부는 그렇지 않습니다. 이곳은 Git이 당신을 도울 수있는 곳입니다. 좋은 부품을 유지하고 더 이상 필요없는 변화를 버릴 수 있습니다. git checkout
일부 "로컬"변경 사항 (즉, 아직 제출되지 않은 변경 사항)이 포함 된 샘플 시나리오를 살펴 보겠습니다. -
Reflog
참고 : 더 나은 개요와 명확한 시각화를 위해 일부 스크린 샷에서 Tower Git 데스크탑 클라이언트를 사용했습니다. 이 튜토리얼을 배우기 위해 타워가 필요하지 않습니다.Reflog
먼저 에서 문제를 해결합시다. 우리가 만든 변화는 완전히 잘못된 방향으로 진행되었습니다. 모든 변경 사항을 취소하고 파일의 마지막 커밋 상태를 재현합시다.
-
또는
git cherry-pick
명령을 사용하여 동일한 결과를 달성 할 수 있습니다. 그러나는 다양한 용도와 의미를 가지고 있기 때문에 약간 업데이트 된 명령을 사용하는 것을 선호합니다 (이러한 유형의 작업에만 초점을 맞 춥니 다). git reset
의 두 번째 질문은 약간 까다 롭습니다. 이 파일에서 우리가 만든 변경 중 일부는 실제로 양호하며 일부만 문서화되지 않아야합니다. -
고객/팀 리더/프로젝트 관리자가 우리가 개발 한 아름다운 분석이 더 이상 필요하지 않다고 가정 해 봅시다. 우리는 잘 정리되어 있으며 물론 해당 git reflog
브랜치를 삭제할 것입니다!
위의 - 는 현재 헤드 브랜치임을 알 수 있습니다. 삭제하려면 먼저 다른 지점으로 전환해야합니다.
$ git restore css/general.css
git은 우리가 매우 진지한 일을하려고한다고 말합니다.에는 다른 곳에 존재하지 않는 고유 한 커밋이 포함되어 있기 때문에 삭제하면 일부 (아마도 가치있는) 데이터를 파괴 할 것입니다. OK ...이 기능이 더 이상 필요하지 않으므로 계속할 수 있습니다 :
feature/analytics
당신은 다음에 일어날 일을 기대했을 것입니다 : 우리의 고객/팀 리더/프로젝트 관리자는이 기능이 다시 돌아 왔다고 우리에게 행복하게 알려줍니다! 그들은 계속되고 싶어합니다! ? 마찬가지로, 우리는 귀중한 데이터를 잃어버린 나쁜 상황에 직면하고 있습니다! 그러니 리플 로그가 우리를 다시 구할 수 있는지 보자 : $ git restore -p index.html
자세히 보면 좋은 소식이 분명 할 것입니다. 우리가 (비참하게) 지점을 삭제하기 전에 다른 지점으로 전환하려면 를 수행해야합니다 (GIT로 현재 지점을 삭제할 수 없기 때문입니다). 물론이 결제는 리플 로그에도 기록됩니다. 우리가 삭제 한 지점을 복원하기 위해, 이제
의 상태를 새 지점의 시작점으로 간단히 사용할 수 있습니다.$ git log -- index.html
봐 : 우리 지점이 다시 살아 났어요! ???? <.> 타워와 같은 데스크탑 GUI를 사용하는 경우, 그러한 오류를 취소하는 것은 일반적으로 cmd 를 누르는 것만 큼 쉽습니다. git checkout
이동은 다른 분기로 커밋됩니다 마지막으로, "아, 아니오!" 오늘날 많은 팀이 "메인", "마스터"또는 "개발"과 같은 장기 지점에 직접 제출하는 것을 금지하는 규칙을 공식화했습니다. 일반적으로 새로운 커밋은 병합/리바세를 통해서만 이러한 지점에 도달해야합니다. 그러나 우리는 때때로 직접 잊고 제출합니다 ... 다음 시나리오를 예로 들어 봅시다. $ git log -p -- index.html
우리는 에 제출해야했지만 실수로 우선, 우리는 이번에 우리가 오른쪽 지점에 있는지 확인해야합니다. 그래서 우리는 : 를 확인하고 있습니다.
우리는이제 명령을 사용하여 커밋을 안전하게 이동할 수 있습니다.를 확인할 수 있으며 커밋이 현재 여기에 있음을 알게 될 것입니다.
지금까지 모든 것이 잘되었습니다. 그러나 는
cherry-pick
지점에서 커밋을 삭제하지 않습니다 (master
forever 는 거기에 있지 않아야합니다). 그래서 우리는 거기에서 엉망진창을 정리해야합니다 :우리는 $ git restore css/general.css
로 다시 전환하고를 사용하여 역사에서 원치 않는 커밋을 삭제합니다.
나는 당신에게 원활한 개발, 시도 할 용기를 기원하며, 물론 수리에 능숙해야합니다!master
끝, 모든 것이 정상으로 돌아 왔으므로 이제 행복한 춤을 시작할 수 있습니다! ???? <.> 잠금 해제 오류는 초강대국입니다 나는 전에 그것을 말했지만 불행히도 우리 모두는 그것이 사실이라는 것을 알고 있습니다. 우리는 오류를 피할 수 없습니다! 우리가 프로그래머라도 아무리 좋은 것이더라도, 우리는 때때로 그것을 엉망으로 만들 것입니다. 따라서 문제는 우리가 실수를하는지 여부가 아니라 어떻게 효과적으로 처리하고 문제를 해결합니까? git reset
git undo 도구에 대해 자세히 알고 싶다면 "Git Firm Aid 키트"를 적극 권장합니다. 이것은 (무료) 짧은 비디오 컬렉션으로 GIT에서 오류를 정리하고 실행 취소하는 방법을 보여줍니다. git을 사용하여 오류를 취소하지 않는 오류 (FAQ) 와
의 차이점은 무엇입니까?및 는 GIT 저장소의 변경 사항을 취소하는 데 도움이되는 두 가지 명령이지만 다르게 작동합니다.
를 사용한 경우머리 포인터를 특정 커밋으로 이동하십시오. 이것은 실제로 커밋에 재설정 후 당신이 가진 모든 커밋을 실제로 "잊어 버린"것을 의미합니다. 이것은 파괴적인 작업이며주의해서 사용해야합니다. 반면에 는 특정 커밋의 변경 사항을 취소하겠다는 새로운 커밋을 만듭니다. 이것은 기존의 역사를 바꾸지 않기 때문에 안전한 운영입니다. 작업을 취소하는 방법은 무엇입니까? 변경 사항을 저장하고이를 취소하기 위해 이미 명령을 사용할 수 있습니다. 예를 들어, 특정 파일을 풀려면 를 사용할 수 있습니다. 모든 변경 사항을 제거하려면 파일을 지정하지 않고
를 사용할 수 있습니다.
를 취소 할 수 있습니까 ?
예, 또는 명령을 사용하여 취소 할 수 있습니다. 머리 포인터를 실행 취소하고자하는 커밋으로 다시 움직여서 원치 않는 커밋을 효과적으로 지우십시오. 반면에 는 원치 않는 커밋의 변경 사항을 취소하겠다는 새로운 커밋을 만들 것입니다. 특정 파일의 변경 사항을 취소하는 방법은 무엇입니까? git reset
특정 파일을 변경하고 이러한 변경 사항을 취소하려면 명령을 사용할 수 있습니다. 예를 들어, git revert
는 지정된 파일의 로컬 작업 디렉토리의 변경 사항을 폐기합니다.는 즉시 제출하고 싶지 않은 변경 사항을 일시적으로 저장할 수있는 명령입니다. 다른 지점으로 전환해야하지만 현재 변경 사항을 커밋하고 싶지 않은 경우 유용합니다. 나중에
git stash
를 사용하여 임시 변경 사항을 적용 할 수 있습니다.내 git 역사를 보는 방법은 무엇입니까? 당신은 git stash
명령을 사용하여 git history를 볼 수 있습니다. 이것은 저장소의 모든 커밋 목록과 커밋 메시지를 보여줍니다.git stash apply
를 취소 할 수 있습니까 예, 당신은 또는 옵션과 함께
여러 커밋을 취소하려면 명령과 구문을 사용할 수 있습니다. 예를 들어, 는 3 번의 커밋 전에 헤드 포인터를 뒤로 움직입니다.
git push
소프트 리셋과 하드 리셋의 차이점은 무엇입니까? 소프트 리셋은 헤드 포인터를 특정 커밋으로 이동하지만 작업 디렉토리 및 스테이징 영역을 변경하지는 않습니다. 즉, "잊혀진"커밋의 변경 사항이 커밋되지 않은 변경으로 여전히 변경됩니다. 반면에 하드 리셋은 작업 디렉토리 및 스테이징 영역의 모든 변경 사항을 폐기하여 지정된 커밋 시점에 저장소를 주로 효과적으로 복원합니다. 하드 리셋 후 커밋을 재개 할 수 있습니까? git push
예, 하드 리셋 후 커밋을 재개 할 수 있지만 쉽지는 않습니다. Git은 리플 로그에서 모든 Ref 업데이트 (예 : 움직이는 헤드 포인터)에 대한 로그를 유지합니다. 명령을 사용하여 복구하려는 커밋을 찾은 다음 -f
를 사용하여 해당 커밋에서 새 지점을 만들 수 있습니다.--force
의 모든 변경에 대해 묻습니다.
동일, 명령은 문제를 해결합니다. 그러나 이번에는 "패치"레벨에 깊이 들어가기 때문에
git restore
-p
$ git restore css/general.css
내용을 보려면 를 보려면 플래그를 사용 하여이 커밋의 실제 변경 사항을 표시 할 수 있습니다.
버전을 복원하여이를 수행합니다! 이것은 중요합니다. 잘못된 커밋에서 파일을 재개하는 대신 커밋 전에 마지막 좋은 상태를 복원합니다!
가 잘못 커밋의 해시 값에 참석하면 git에게 다음을 수행하도록 지시합니다.
index.html
가 수정되었음을 알게 될 것입니다 : Git은 우리를 위해 마지막으로 좋은 버전의 파일을 복원했습니다!
물론, 그러한 로그는 일이 잘되지 않는 상황에 적합합니다. 먼저 작은 재난을 만들어 봅시다. 그러면 우리는 리플 로그로 고칠 수 있습니다.
git reset
우선, 리플 로그는 열기가 매우 쉽습니다.
$ git restore css/general.css
를 사용하거나 단순히 새 지점을 만들 수 있습니다.
위 내용은 git로 실수를 취소하는 5 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 GO 기반 네트워크 취약점 스캐너는 잠재적 보안 약점을 효율적으로 식별합니다. 속도를 위해 Go의 동시성 기능을 활용하고 서비스 감지 및 취약성 일치를 포함합니다. 그 능력과 윤리를 탐색합시다

웹 사이트 구성은 첫 번째 단계입니다 : SEO 및 백 링크의 중요성 웹 사이트 구축은 웹 사이트를 귀중한 마케팅 자산으로 전환하는 첫 번째 단계 일뿐입니다. 검색 엔진에서 웹 사이트의 가시성을 향상시키고 잠재 고객을 유치하려면 SEO 최적화를 수행해야합니다. 백 링크는 웹 사이트 순위를 향상시키는 열쇠이며 Google 및 기타 검색 엔진에 웹 사이트의 권한 및 신뢰성을 보여줍니다. 모든 백 링크가 유리한 것은 아닙니다. 유해한 링크를 식별하고 피하십시오. 모든 백 링크가 유익한 것은 아닙니다. 유해한 링크는 순위에 해를 끼칠 수 있습니다. 우수한 무료 백 링크 확인 도구는 웹 사이트 링크 소스를 모니터링하고 유해한 링크를 상기시킵니다. 또한 경쟁 업체의 링크 전략을 분석하고 배울 수도 있습니다. 무료 백 링크 점검 도구 : SEO 인텔리전스 책임자


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
