git 풀 실행 취소, 저장소를 이전 상태로 되돌리는 방법
git pull을 원래대로 되돌리거나 실행 취소할 수 있는 방법이 있나요? git pull을 실행하기 전 상태로 되돌리거나 실행 취소하거나 하고 싶지 않은 파일을 병합하고 나머지 파일만 병합했기 때문에 이 작업을 하고 싶습니다.그래서 그 파일들을 돌려받고 싶은데, 가능한가요?
EDIT: 설명을 위해 git merge를 취소하고 싶습니다.몇 가지 답을 보고 이렇게 했어요.
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
하면 있어요?git reset --hard
. 다시 망치고 싶지 않으니 자세한 절차를 물어보세요.
.git pull
는 다음합니다.
git fetch
git merge
merge 스텝은 Configuration에서 Marge하도록 설정된 브런치를 결합합니다.Marge 스텝을 실행 취소하고 싶지만 fetch는 실행하지 않을 수 있습니다(큰 의미가 없고 필수는 아닙니다).
병합을 취소하려면git reset --hard
로컬 저장소를 이전 상태로 리셋하려면 git-reflog를 사용하여 이전 상태의 SHA-1을 찾은 후 리셋합니다.
경고
이 섹션에 나열된 명령어는 커밋되지 않은 모든 변경을 삭제하여 작업 손실을 초래할 수 있습니다.
git reset --hard
또는 다음과 같은 특정 시점으로 리셋합니다.
git reset --hard master@{"10 minutes ago"}
jkp의 답변과 동일합니다만, 자세한 명령어는 다음과 같습니다.
git reset --hard a0d3fe6
여기서 a0d3fe6는 다음 방법으로 찾을 수 있습니다.
git reflog
원래대로 되돌리고 싶은 지점을 보고 있습니다.
병합을 취소하는 보다 현대적인 방법은 다음과 같습니다.
git merge --abort
그리고 조금 오래된 방법:
git reset --merge
이전 답변에서 설명한 구식 방식(경고: 로컬 변경 내용이 모두 폐기됩니다):
git reset --hard
하지만 사실, 주목할 가치가 있다git merge --abort
와 동등하다.git reset --merge
MERGE_HEAD
내용은 에서 확인할 수 .합병하다
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
Marge 후 하지 않는 MERGE_HEAD
은 "Marge"로 할 수 git reset --merge
하지만 꼭 그렇지는 않다git merge --abort
그래서 같은 구문을 사용하기 위한 오래된 구문일 뿐만 아니라 새로운 구문일 수도 있습니다.이게 내가 찾는 이유야git reset --merge
일상에서 훨씬 더 유용하게 쓰입니다.
사용 : " " " : "git reflog
이전 사용자 상태의 SHA를 찾아서 만듭니다(HEAD@{1}이(가) 예입니다).
git reset --hard HEAD@{1}
가정하다$COMMIT
、 の 기 was 、 の was wasID の was was you를 실행하기 커밋 。git pull
풀은대로 되돌리기 위해
git reset --hard $COMMIT
.
보너스:
끌어당기는 것에 관해 말하자면, 흥미로운 요령을 공유하고자 합니다.
git pull --rebase
위의 명령어는 많은 시간을 절약한 제 git 생활에서 가장 유용한 명령어입니다.
새로운 커밋을 서버에 푸시하기 전에 이 명령을 실행하면 최신 서버 변경(fetch + merge)이 자동으로 동기화되어 커밋이 git 로그의 맨 위에 배치됩니다.수동 당김/머지 걱정은 없습니다.
자세한 것은, http://gitolite.com/git-pull--rebase 를 참조해 주세요.
gitk를 가지고 있다면(gitk --all을 git 명령줄에서 실행해 보십시오), 간단합니다.실행 후 롤백할 커밋을 선택하고(우클릭), "마스터 브랜치를 여기로 재설정"을 선택합니다.커밋되지 않은 변경이 없는 경우 "하드" 옵션을 선택합니다.
이것이 풀 변경 내용을 되돌리는 가장 쉬운 방법입니다.
** Warning **
새로 만든 파일과 폴더가 삭제되므로 변경된 파일을 백업하십시오.
git reset --hard 9573e3e0
서 ★★★★★9573e3e0
id}가 사용자의 {Commit id}입니다.
수 있다git reset --hard ORIG_HEAD
"pull" 또는 "merge"는 이러한 작업을 수행하기 전에 ORIG_HEAD를 현재 상태로 설정하기 때문입니다.
마지막 머지를 에 되돌리기 위해custom-branch
가장 쉬운 방법은 다음과 같습니다.
git reset --hard custom-branch@{1}
의 예main
★★★★★★★★★★★★★★★★★★:
git reset --hard main@{1}
실행해 보다
git reset --keep HEAD@{1}
git pull do는 아래 작업을 수행합니다.
i.
git fetch
ii.
git merge
풀의 실행을 취소하려면 다음 작업을 수행합니다.
i.
git reset --hard
.--- 로컬 변경은 모두 되돌립니다.또는
ii.
git reset --hard master@{5.days.ago}
것)10.minutes.ago
,1.hours.ago
,1.days.ago
위해...)를 사용합니다.또는
git reset --hard commitid
개선점:
에는 음다 next를 사용합니다.git pull --rebase
git pull
동기화하다
를 current branch
''를 공연한 곳git pull
git log
샘플 출력은 다음과 같습니다.
commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxa3dd0
Author: user <user@gmail.com>
Date: Tue Nov 23 20:19:58 2021 +0530
latest changes
commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxd697b
Author: user <user@gmail.com>
Date: Tue Nov 23 17:45:44 2021 +0530
latest changes includes account details api
commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa
Author: user <user@gmail.com>
Date: Tue Nov 23 17:02:39 2021 +0530
latest changes
ID가 "ID"인 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa
pull을 의 마지막 커밋 합니다).이이(「ID」, 「ID」, 「2」의 풀).
git reset --hard xxxxxxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa
그러면 이 커밋 ID 위에 있는 커밋이 삭제됩니다.이렇게 하면 이전 변경 사항을 얻을 수 있습니다.
내가 가장 먼저 제안하는 것은 프로젝트의 복사본을 만드는 것이다.
새 지점(git checkout -b NewCopy)을 체크아웃하면 복사본을 가지고 체크아웃한 지점으로 돌아갈 수 있습니다.
git 참조를 보려면 이 명령을 실행합니다.
git reflog
그러면 참조 로그와 commit_Id {something e0371eb}이 표시됩니다.이러한 로그를 사용하여 특정 참조 지점으로 돌아갈 수 있습니다.
이 명령을 실행하여 포인트로 역추적합니다.
git reset --hard 7316f34 //replace that with your commit id
2개의 터미널을 열 것을 권장합니다. 하나는 로그를 표시하기 위한 것이고 다른 하나는 명령을 실행하기 위한 것입니다.
Marge 실패가 있는 경우, 이것이 가장 일반적인 이유이며,git pull
,입니다.git reset --merge
Import된 파일은 그대로 유지하되 머지는 원래대로 되돌립니다.git pull
병합을 시도했습니다.그러면 어떻게 해야 할지 결정할 수 있습니다.git merge
가끔 발생하기도 합니다.또한 정확한 커밋 ID를 찾기 위해 필요한 ID는 없습니다.--hard
필요한 다른 모든 답변에 언급되어 있습니다.
Marge 액션을 취소하려면 이 작업을 수행합니다.git merge --syslog
git reflog 다음과 같은 목록이 생성됩니다.
2cae310 (HEAD -> ArunJan, origin/ArunJan) HEAD@{0}: 체크아웃: a590c01f5c2b83adcb36049f3fd390a324fa745에서 ArunJan a590c01 HEAD@{1}: 체크아웃: ArunJan에서a01c로 이동
2cae310 (HEAD -> ArunJan, origin/ArunJan) HEAD@{2}: 리셋: HEAD로 이동
>origin/: 합니다. 크: 4 : 4a41a05b98b274f1477991c6a25313f38b1b2 ar ar ar ar ar444444Jan4a41a0fHEAD@{4}4: 크 arjan: ArunJan05ba05ba head head head head head head head head head head head head head 。
origin/ (HEAD -> ArunJan, origin/ArunJan) HEAD@{5}: 2cde310: 2cdae310으로 이동합니다.
f830534 HEAD@{6}: ArunJan: 'ort' 입니다.
HEAD creation taska590c01 HEAD@{7}: 커밋: a : a : a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
HEAD new HEAD@{8}: 밋 : 4 : 4 : 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 、 4 44a41a0f
HEAD@{9}: 크 b : b6cb3c5e82aea1f215c365f195c194f194f로 이동
HEAD HEAD@{10}: 크------에에에에에에에b6cb3c5c2a4c2a0c3c3e3c3c3c3c3c3c3c3c3c3c3e5d37e5d375d3c로
" URL 5eeaf3c(dev-server) HEAD@{11}: "URL" 을 되돌립니다.
되돌릴 버전을 선택합니다.예를 들어 '프로젝트 생성 태스크'로 되돌리려면 ID b0168ee를 선택합니다.그런 다음 다음 다음 명령을 실행하여 저장소를 해당 버전으로 되돌립니다.
git reset --hard a590c01
를 방금 pull' merge' 변경을 'filench pull'을 실행합니다.git reset --hard
이 명령어는 커밋되지 않은 모든 변경을 로컬 작업영역에서 제거하며 취소할 수 없습니다.따라서 아직 커밋되지 않은 중요한 작업을 백업해야 합니다.
언급URL : https://stackoverflow.com/questions/1223354/undo-git-pull-how-to-bring-repos-to-old-state
'itsource' 카테고리의 다른 글
「 」의 맞추기 「 」의 맞추기 「 」의 맞추기 페이지 중앙(가로/가로)까지 (0) | 2023.04.17 |
---|---|
선택 안 함 Excel vba 고정 창 (0) | 2023.04.17 |
Swift의 Documents 디렉토리에 파일이 있는지 확인하는 방법 (0) | 2023.04.17 |
PowerShell에서 명령 실행 타이밍 설정 (0) | 2023.04.17 |
명령줄 인수를 Bash에서 배열로 변환 (0) | 2023.04.17 |