이 내 최고 역사를 커밋한다 :일부 커밋의 변경 사항을 인덱스로 가져 오는 방법은 무엇입니까?
나는 인덱스에 그 커밋의 변경을 얻고 하나 이상의 커밋에 커밋 할 필요가5e1aaf7 final commit message
0356c0a add Toyota to Cars.txt
5498f0f add some cities to Cities.txt
e811024 add Cities.txt
.
이 내 최고 역사를 커밋한다 :일부 커밋의 변경 사항을 인덱스로 가져 오는 방법은 무엇입니까?
나는 인덱스에 그 커밋의 변경을 얻고 하나 이상의 커밋에 커밋 할 필요가5e1aaf7 final commit message
0356c0a add Toyota to Cars.txt
5498f0f add some cities to Cities.txt
e811024 add Cities.txt
.
정확하게 이해했다면 마지막 네 가지 커밋을 다시 실행하고 하나의 변경 사항으로 작업하고 싶습니다. git reset --soft HEAD~4
무슨 일 이니? git reset
은 현재 분기 레이블을 임의의 위치로 이동합니다 (git reset --
, 혼동스럽게 완전히 다른 작업을 수행합니다). git reset HEAD~4
은 현재 분기를 4 커밋으로 이동합니다.
--soft
, --hard
, --mixed
, --merge
인덱스와 작업 복사본에 무슨 일 --keep
제어 할 수 있습니다. --soft
은 색인과 작업 사본을 혼자 남겨두기 때문에 작업 할 디스크의 오래된 HEAD가 남아있게됩니다. --hard
은 인덱스와 작업 복사본을 새 커밋으로 다시 설정합니다. 일종의 값은 checkout
입니다. 나머지는 내가 당신을 워드 프로세서를 읽도록 남겨 둡니다.
함께 스쿼시하고 싶다면 git rebase -i HEAD~4
을 사용하고 squash
명령을 사용하십시오.
pick e811024 add Cities.txt
s 5498f0f add some cities to Cities.txt
s 0356c0a add Toyota to Cars.txt
s 5e1aaf7 final commit message
개별적으로 변경하려면 rebase -i
을 사용하고 edit 명령을 사용하십시오. 해결해야 할 충돌이 발생할 수 있음을 알아 두십시오.
e e811024 add Cities.txt
e 5498f0f add some cities to Cities.txt
e 0356c0a add Toyota to Cars.txt
e 5e1aaf7 final commit message
마지막 커밋을 변경하려는 경우 편집을 수행하고 git commit --amend
을 수행하십시오. 마지막 커밋을 다시하고 싶다면 git reset --soft HEAD~
을 쓰면됩니다. 이것은 현재 브랜치를 하나의 커밋으로 이동하지만 작업 복사본 만 남겨 둡니다. 나는 redo
에 별명을 붙여야한다. 특정 커밋에서이 파일을 검색하려는 경우
,이 작업을 수행 할 수 있습니다
git checkout e811024 file/to/restore
이 잘 모르겠어요 커밋 e811024
을에서 선택한 파일을 체크 아웃 할 무엇 ' 다시 묻습니다. rebase 작업을 완료 했습니까? rebase를 취소 하시겠습니까? –
커밋 관리에 대해 배우고 있습니다. 마지막 커밋 3 번부터 변경 사항을 다시 가져와야합니다. 나는'git rebase'가 좋다고 생각했지만, 그렇지 않습니다 ...'git checkout 0356c0a - Cars.txt'가 더 낫습니다. 이 경우'--'와'Cars.txt '는 무엇을 의미합니까? –
내가 묻는 내용이 명확하지 않아서 제 대답을 삭제했습니다. Git 커밋 내역이 현재 어떻게 생겼는지 질문을 업데이트 할 수 있습니까? –