깃 (git) 을 쉽게 명령취소할 리베이스 방법 아는 사람 있어요?
마음이 갈 수 있는 유일한 방법은 않했노라 http://support. 직접 이:
깃 (git) 두 사람 모두 분기로서의 커밋합니다 상위입니다 체크아웃합니다 -
이것은 내 현재 상황을 쉽게 할 수 없기 때문이죠 모두에서 분기로서의 별색 커밋한 gonna work (그 중 하나는, 내, 내 물건을 다른 colleague& # 39 의 자료).
그러나 내 외곽진입 파업 및 높은 것처럼 나를 최적화 (let& # 39 의 말하도다 내가 내 스스로 분기로서의 리베이스 단 2 개 포함).
아무 생각 없어?
설명: # 39 m 에 있는 동안, i& 스토리지스코프는 리베이스 a bunch of 커밋한 재적용된 있었다. 안 한 사람.
가장 쉬운 방법은 약간만이라도 커밋합니다 시작 직전에 리베이스 브랜치의 헤드에게 찾을 수 있는 것 세로그.
git reflog
현재 재설정하려면 드라이버로의 정보기술 (it) 과 (와 함께 '잘' 하드 기술입니까 대한 일반적인 시 전에 nnt 재설정 옵션인지.
예를 들어, {5} '에서' 는 이전 커밋합니다 HEAD@ ref 로그:
git reset --hard HEAD@{5}
git reset --hard "HEAD@{5}"
역사 이전 헤드에게 깃 (git) 을 통해 확인할 수 있습니다 '그냥' {5} 후보 하면 HEAD@ 로그 (log {5} Windows: HEAD@ " ", 깃 (git) ',').
모든 세르고스 활성화됨 비사양 베어 리포지토리를 위한 기본 호스트당 있다.
[core]
logAllRefUpdates = true
사실 때문에 이 같은 단순한 '보통' ORIG_HEAD 가리키십시오 리베이스 너회의 절약합니다 시작.
git reset --hard ORIG_HEAD
그러나 '병합' 오리지널 '머리', '모든 먹이좀 재설정하지 리베이스' 와 '에', 've done' 포인터입니다 ORIG_HEAD you& 따라서 그 이후 모든 # 39 명령의세 리베이스 you& # 39, re trying to # 39 를 사용해야 하는 세로그 you& 명령취소 다음, ll.
물론 이 허상 그 이전 팁이 드라이버로의 재설정하지 커밋합니다 객체에는 최적의 솔루션을 이전 상태 때문에 avamar 만매 없이 모든 노력이 필요합니다. 그러나 이러한 문제가 발생할 경우 잃은 커밋한 (f.렉스 한편, 또는 이는 너회의 리포지토리를 쓰레기요 수집됩니다 수 있기 때문에 새로운 클론) 이 다시 분기로의 항상 리베이스 수 있습니다. 핵심은 '이' 관용으로충만하신 스위치였습니다.
상상 '주제' 라는 주제를 했습니다 합시다 분기로의 수 있는 팁이 '마스터' 가 '때' 마스터 '확장됨 오프하도록 0deadbeef' 커밋합니다. 어느 시점에서 '주제' 분기로의 중에도 < code> git&, # 160;;;; # 160, 재발했지 rebase& /code> master<;;). 이제 운영까지도 명령취소할 이. 대해 살펴보겠습니다.
git rebase --onto 0deadbeef master topic
이 모든 것을) 에 '마스터' 에 '주제' 가 앨리어스보다 커밋한 뚱보보다 및 재적용 그들을 상단형 '0deadbeef'.
당신의 역사를 함께 ',' 로 거의 모든 것을 모든 모양에만 관용으로충만하신 재정렬할 수 있습니다.
즐거운 시간 되세요 < /tt>;;; tt> < :-)
>. 깃 (git)} - {프란치나미 재설정하지 하드 출처 /
예:
$ ~/work/projects/{ProjectName} $ git status
On branch {branchName}
Your branch is ahead of 'origin/{branchName}' by 135 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
$ ~/work/projects/{ProjectName} $ git reset --hard origin/{branchName}
HEAD is now at 6df5719 "Commit message".
$ ~/work/projects/{ProjectName} $ git status
On branch {branchName}
Your branch is up-to-date with 'origin/{branchName}.
nothing to commit, working directory clean
어떤 방법이 주효했는가 가져다줄래요 here 에 설명됨 비슷했다. 에서 파일을 열 수 있었던 분기로의 .git/logs/refs 이름을 따서 리베이스 " 리베이스 다음과 같은 항목을 찾을 줄 확장자입니다 finsihed";
5fce6b51 88552c8f Kris Leech <[email protected]> 1329744625 +0000 rebase finished: refs/heads/integrate onto 9e460878
두 번째 나온 체크아웃합니다 커밋합니다 할말이다
git checkout 88552c8f
내가 내 손실됩니다 변경, 여기서 이 v2.03-00 확인했으면 확장됨 아웃해야 가슴을 쓸어내렸다.
git log
git checkout -b lost_changes
다음, 간단히 해결 할 수 있었으면 좋겠다 난 @Allan 및 @Zearin 셀명 표시되어도 don& # 39, 명성, 그래서 나는 충분히 다음 명령을 사용할 수 없다.
I - 리베이스 깃 (git) 하는 대신 '중단' (참고합니다 -i ) 부모한테 단순히 '-' ( 없이 이 -i) 리베이스 깃 (git) 을 할 것이다.
깃 (git) 가 모두 사용하여 '-i' 나 '와' 중단 동시에건간에 표시하십시오 바뀌엇어요 사용 / 옵션.
그래서 제 이 솔루션을 통해 이전 및 현재 분기로의 상태 입니다.
matbhz@myPc /my/project/environment (branch-123|REBASE-i)
$ git rebase --abort
matbhz@myPc /my/project/environment (branch-123)
$
깃 (git) 을 상대로 중단할 수 없는 경우 '-' 당신은 여전히 리베이스 리베이스 원격 지점 및 성공적으로 할 수 있는 일과 할 수 없는 몇 가지 요령을 먹이좀 don& # 39, 푸시합니다 했다. 예를 들어, 실수로 '와' 가 현재 분기로의 리베이스 호출됨 네 분기로의 네 분기로의 추적 중인 '그' /
git rebase -i HEAD~31
지난 31 대화형 리베이스 커밋한 (이 경우 너무 많은 상처를 강조표시할 doesn& # 39, t).
단순히 시행하십시오 보기할 커밋한 폐기할 및 마크 그들과 함께 " d"; 대신 pick" ";). 이제 이 리베이스 명령취소 커밋한 효과적으로 삭제될 경우 해당 제거하시겠습니까 커밋한 때 방금 attaboy 리베이스).
새내기 / 누구나 수행에 대해 너무 겁먹었구나 하드 재설정됩니다 체크아웃합니다 &solarisdvd 세로그 커밋합니다 수 있습니다 다음 새 분기로의 로 저장합니다.
git reflog
증대하고자 찾기 시작한 직전 리베이스. 자세히 스크롤하십시오 찾습니다 (enter 키 또는 페이지다운) 할 수 있습니다. 시행하십시오 적어두십시오 헤드입니다 번호 및 복귀시킴 57:
git checkout HEAD@{57}
이를 통해 새로 만들 경우 검토 / 커밋한 분기로의 잘 어울려 분기로의 머리:
git checkout -b new_branch_name
사용하고 있는 경우에는 분기로의 사용할 수 있습니다.
git reset --hard @{1}
There is not only 참조입니다 로그에서 헤드 (git 세로그 입수한 ''), 또한 각 지점 (입수한 세로그 branch> <, 깃 (git) ',') 세르고스. 그래서 '마스터' 다음 '마스터' 가 있는 경우, git 세로그 나열하십시오 변경되는지 모든 것을 주장한다. 변경되는 참조할 수 있습니다 'master@ {1}}, {2' 에서 ',' master@ 상술합니다.
깃 (git) '은 일반적으로 여러 번 헤드에게 변경하십시오 있으나 현재 분기로의 리베이스' 한 번만 업데이트될 예정입니다.
'@' 는 {1} 앨리어스가 [짧은보기 현재 분기로의] [1] 도왔으매 it& # 39 의 경우 같은 'master@ {1}' 에 '마스터'.
깃 (git) 을 사용할 경우 '-' 하드 ORIG_HEAD 재설정하지 작동하지 않습니다 '중' 리베이스 상호대화식 재설정하지 깃 (git) ''.
[1]: https://git-scm.com/docs/gitrevisions # gitrevisions-emltngtemegem1em
깃 (git) 내의 엉망하지 경우 (예: '-' 뭔가 백업하도록 리베이스 리베이스 커밋되지 않은 파일, 그들이 가지고 있는 반면, 깃 (git) 중단 깃 (git) '와' 손실됩니다 세로그 도움이 되지 않는다. 저와 이 상태입니까 위부의 기입란 목마르겠구나 랑하니 합니다 나 같은 경우 사용할 수 있습니다 ',' 운이 린텔리 웹스톰 right-click-> 로컬 기록 및 이전 상태로 되돌릴 수 있는지 여러분의 파일 / 폴더 함께 수행한 것은 무엇이든 버전 관리 소프트웨어. 항상 좋은 다른 페일세이프 할 수 있습니다.