원격 저장소에 푸시된 Git의 특정 커밋 실행 취소
다음과 같은 특정 커밋을 실행 취소하는 가장 간단한 방법은 무엇입니까?
- 머리나 머리가 아닌
- 원격으로 푸시되었습니다.
최근의 약속이 아니라면,
git reset HEAD
작동하지 않습니다.원격지로 밀려났기 때문에
git rebase -i
그리고.
git rebase --onto
리모컨에 문제가 발생할 수 있습니다.
더 그렇습니다, 저는 역사를 수정하고 싶지 않습니다.만약 나쁜 코드가 있었다면, 그것은 역사에 있었고 볼 수 있습니다.저는 단지 그것을 작업 복사본에 넣고 싶을 뿐이고, 저는 역 합병 커밋에 개의치 않습니다.
즉, 다음 svn 명령에 해당하는 Git는 무엇입니까?
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
295에서 302까지의 모든 변경 사항을 새 커밋으로 역병합하여 제거합니다.
svn merge -c -302 ^/trunk
302 커밋을 취소합니다. 물론 해당 커밋의 변경 사항을 역으로 병합하는 다른 커밋을 추가합니다.
저는 Git에서 꽤 간단한 수술과 상당히 일반적인 사용 사례가 되어야 한다고 생각했습니다.원자적 커밋의 요점은 또 무엇입니까?
우리는 커밋이 완벽하게 원자적이라는 것을 보장하기 위해 스테이징 스태킹과 모든 것을 가지고 있는데, 당신은 하나 이상의 원자적 커밋을 쉽게 취소할 수 있어야 하지 않나요?
다음을 사용하여 커밋의 해시 식별git log
그 다음에 사용git revert <commit>
이러한 변경 사항을 제거하는 새 커밋을 만듭니다.어떤 면에서는.git revert
의 반대입니다.git cherry-pick
후자는 패치가 없는 분기에 패치를 적용하고 전자는 패치가 있는 분기에서 패치를 제거합니다.
나는 자동 커밋이 마음에 들지 않습니다.git revert
그렇습니다, 그래서 이것은 일부 사람들에게 도움이 될 수 있습니다.
자동 커밋이 아닌 수정된 파일을 원할 경우--no-commit
% git revert --no-commit <commit hash>
그것은 그것과 같습니다.-n
% git revert -n <commit hash>
이미 추진된 일이기 때문에 역사를 직접 조작해서는 안 됩니다. git revert
커밋 기록을 조작하지 않도록 새 커밋을 사용하여 커밋에서 특정 변경 사항을 되돌립니다.
되돌리려는 커밋이 병합된 커밋(이미 병합됨)인 경우 다음 중 하나를 수행해야 합니다.-m 1
또는-m 2
옵션은 아래와 같습니다.이렇게 하면 병합된 부모 커밋이 사용할 커밋을 git에 알 수 있습니다.자세한 내용은 여기에서 확인할 수 있습니다.
git revert <commit> -m 1
git revert <commit> -m 2
언급URL : https://stackoverflow.com/questions/2318777/undo-a-particular-commit-in-git-thats-been-pushed-to-remote-repos
'programing' 카테고리의 다른 글
'az'라는 용어가 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. (0) | 2023.05.21 |
---|---|
VBA 사전을 통해 반복하시겠습니까? (0) | 2023.05.21 |
엔티티 프레임워크를 사용한 LIKE 쿼리 (0) | 2023.05.16 |
동기식 연결에 HttpClient를 사용하는 이유 (0) | 2023.05.16 |
한 데이터 테이블을 다른 데이터 테이블에 추가하는 방법 (0) | 2023.05.16 |