반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 컴퓨터공학
- 웹개발
- 데이터과학
- 자료구조
- 딥러닝
- 데이터구조
- 소프트웨어공학
- 빅데이터
- 사이버보안
- 네트워크
- 데이터베이스
- 코딩
- 파이썬
- 클라우드컴퓨팅
- 소프트웨어
- 버전관리
- 보안
- 알고리즘
- 컴퓨터비전
- Yes
- 프로그래밍
- 인공지능
- 2
- I'm Sorry
- 네트워크보안
- 데이터분석
- 프로그래밍언어
- 자바스크립트
- 머신러닝
- 컴퓨터과학
Archives
- Today
- Total
스택큐힙리스트
아직 푸시되지 않은 Git 병합을 되돌리기 본문
반응형
저는 실수로 로컬 master 브랜치에 git merge some_other_branch
를 실행했습니다. 변경 내용을 원본 master에 푸시하지 않았습니다. 병합을 취소하는 방법이 무엇인가요?
병합 후 git status
는 다음과 같이 나타납니다:
# 브랜치 master에서
# 'origin/master'에 대해 앞서 올린 커밋이 5개 있습니다.
이 모든 커밋을 취소하는 방법은 무엇인가요?
답변 1
git reflog
를 사용하여 병합 이전의 커밋을 확인하세요 (git log
보다는 git reflog
가 더 좋은 옵션입니다). 그런 다음 다음 명령을 사용하여 재설정할 수 있습니다:
git reset --hard commit_sha
또 다른 방법이 있습니다:
git reset --hard HEAD~1
이렇게 하면 1개의 커밋을 되돌릴 수 있습니다.
모든 수정된 및 커밋되지 않은/스태시되지 않은 파일이 수정되지 않은 상태로 초기화됨에 유의하십시오. 변경 사항을 보존하려면 변경 사항을 스태시하거나 아래의 --merge
옵션을 참조하십시오.
@Velmont가 아래 답변에서 제안한 대로, 다음을 사용하여 직접적인 경우:
git reset --hard ORIG_HEAD
더 나은 결과를 얻을 수 있습니다. 이렇게 하면 병합이 발생하기 직전의 커밋을 가리키는 ORIG_HEAD
가 유지되므로 별도로 찾을 필요가 없습니다.
더 나아가서, 불필요하게 파일을 재설정하지 않도록 하기 위해 --hard
대신에 --merge
스위치를 사용하는 것이 좋습니다:
git reset --merge ORIG_HEAD
--merge
인덱스를 재설정하고 HEAD와 <commit> 사이에 다른 파일들을 작업 트리에 업데이트하지만, 인덱스와 작업 트리 사이에서 다른 파일들을 유지합니다 (추가되지 않은 변경 사항이 있는 파일들).
답변 2
Git 병합(merge)은 여러 개발자들이 동일한 저장소(repository)에서 작업할 때 자주 사용되는 기능입니다. 그러나 때로는 병합된 변경 사항이 원하지 않는 결과를 초래할 수 있습니다. 행여나 아직 푸시(push)되지 않은 Git 병합을 취소하고자 한다면 어떻게 해야 할까요? 이에 대해 알아보겠습니다.Git은 변경 사항을 추적하고 이전 상태로 되돌릴 수 있는 강력한 도구입니다. 따라서 푸시되지 않은 병합을 취소하려면 몇 가지 단계를 따라야 합니다.
첫 번째로 변경 사항을 복원하고자 하는 로컬 저장소에서 다음 명령어를 사용하여 Git 히스토리를 확인합니다.
```
git log
```
이 명령을 실행하면 로컬 저장소의 커밋 기록이 표시됩니다. 취소하려는 병합에 해당하는 커밋을 식별해야 합니다.
그 다음,아래의 명령을 사용하여 복원하려는 이전의 특정 커밋으로 롤백합니다.
```
git reset --hard
```
`
이제 로컬 저장소는 이전 상태로 롤백되었습니다. 그러나 원격 저장소와 동기화되지 않은 상태이므로, 모든 작업자들이 이 복원을 알아채지 못할 수 있습니다.
따라서 모든 작업자들이 변경 사항을 알 수 있도록 원격 저장소를 강제로 업데이트해야 합니다. 이를 위해 다음 명령어를 실행합니다.
```
git push origin +
```
`
이제 병합을 원래 상태로 복원하였으며, 모든 작업자들이 동일한 변경 사항을 보고할 수 있게 되었습니다.
본 문서에서는 푸시되지 않은 Git 병합의 취소 방법을 간략히 소개하였습니다. 이는 개발자들이 Git을 효과적으로 활용하여 작업 흐름을 관리할 수 있도록 도와줍니다. Git을 사용함에 있어서 주의해야 할 점은 이전 상태로 롤백하면서 수정한 내용들이 모두 삭제된다는 것입니다. 따라서 복원하기 전에 커밋된 모든 변경 사항을 백업하였는지 확인하는 것이 중요합니다.
마지막으로, 적절한 키워드 사용을 통해 검색 엔진 최적화(SEO)에 신경쓴 한국어 에세이 작성을 지향했습니다.
반응형
Comments