오류: 기본 재배치로 풀링할 수 없습니다.단계별 변경사항이 있습니다.
저는 몇 명의 친구들과 함께 프로젝트에 참여하기 시작했고 그들은 herkugit 저장소를 사용합니다.
며칠 전에 리포지토리를 복제했는데 그 이후로 리포지토리가 몇 가지 변경되어 최신 업데이트를 얻으려고 합니다.
실행했습니다.git pull --rebase
여기에 명시된 명령(이 방법이 올바른 것입니까?): https://devcenter.heroku.com/articles/sharing#merging-code-changes
다음 오류가 발생합니다.
$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
제 생각에는 제가 코드를 만지작거려서 이제는 변경 사항을 커밋하거나 폐기하기를 원하는 것 같습니다(stash가 의미하는 것입니까?).이게 지금 일어나고 있는 일입니까?이 경우 변경한 내용은 모두 폐기하고 Git 저장소에서 업데이트된 코드만 가져옵니다.
내가 뭘 할 수 있을지 생각해 봤어요?
재배치를 하는 동안 변경 사항을 할 수 .--autostash
설명서에서 다음을 참조하십시오.
리베이스를 시작하기 전에 필요한 경우 로컬 수정사항을 저장하고(git-stash[1] 참조), 저장이 완료되면 적용합니다.
예:
git pull --rebase --autostash
도git status
변경된 파일이 표시됩니다. 사항을 에 할 수 것은 할 수 .git checkout -- <file name>
또는git reset --hard
변화를 제거하기 위해.
대부분의 경우 Git는 변경사항에 대해 어떻게 해야 하는지 알려줍니다.예를 들어, 다음과 같은 오류 메시지가 표시됩니다.git stash
싶으면 이것은 당신이 그것들을 유지하고 싶다면 그럴 것입니다.당긴 후에는 다음과 같이 합니다.git stash pop
변경 내용이 다시 적용됩니다.
git status
또한 파일이 커밋을 위해 준비되었는지 여부에 따라 변경 사항을 제거하는 방법도 제공합니다.
리베이스로 당기는 것은 일반적으로 좋은 방법입니다.
그러나 인덱스가 깨끗하지 않은 경우, 즉 커밋되지 않은 변경을 수행한 경우에는 이 작업을 수행할 수 없습니다.
변경 사항을 유지하려는 경우 이 작업을 수행하여 해결할 수 있습니다.
- 내용을 다음과 같이 합니다.
git stash
- 리베이스를 사용하여 마스터에서 끌어냅니다.
- 다음을 사용하여 (1)에 저장한 변경 사항을 다시 적용합니다.
git stash apply stash@{0}
더 니면더단한순아.git stash pop
변경사항을 자동으로 저장하고 모든 기본 재배치에 대해 저장 해제하려면 다음 작업을 수행할 수 있습니다.
git config --global rebase.autoStash true
번째 은 a 첫번시작a로 시작합니다.git status
보류 중인 변경사항이 있는지 확인합니다.삭제하려면 실행
이를 실행하면 변경 내용이 손실됩니다.
git reset --hard
이것은 나에게 도움이 됩니다.
git fetch
git rebase --autostash FETCH_HEAD
언제든지 할 수 있습니다.
git fetch && git merge --ff-only origin/master
그리고 (a) 업스트림 변경과 충돌하는 커밋되지 않은 변경사항이 있는 경우 변경사항이 없거나 (b) stash/pull/apply와 동일한 효과: HEAD의 최신 변경사항과 커밋되지 않은 변경사항을 그대로 유지할 수 있는 재배치.
Git가 파일의 eol 규칙을 수정하려고 시도하기 때문에 단계적으로 변경되는 경우(항상 그렇듯이), 저장, 체크아웃 또는 재설정을 해도 해당 변경이 제거되지 않습니다.
그러나 단계적으로 변경되지 않은 기본값을 변경하고 무시하려는 의도가 있다면, 제가 하는 일은 브랜치를 로컬로 삭제한 다음 다시 확인하는 것입니다.
git checkout -f anyotherbranchthanthisone
git branch -D thebranchineedtorebase
git checkout thebranchineedtorebase
Voila! 아직 실패하지 않았어요.
다음 단계를 수행합니다.
from 피쳐/분기(아래 명령 입력)
git 체크아웃 마스터
기트풀
git 체크아웃 기능/이름
git 병합 마스터
여기서 아래 명령을 사용하여 스테이징되지 않은 변경 사항을 복원하면 됩니다.
나의 경우, 나는 당신의 경우 실 파일에 오류가 있었습니다. 그것은 다른 파일일 수 있습니다.
깃 복원 --실.잠금.
작업영역을 일부 변경했지만 커밋하지 않았기 때문입니다.
를 통해 로컬 저장소로 코드를 변경했습니다.
git add/rm <file> && git commit -m "Add/Delete file."
그냥 사용하기git status
어떤 파일이 변경되었는지 확인합니다.
I would like to discard any changes I might have made and just get the updated code from the git repository.
이전 복제된 리포지토리를 삭제한 후 최신 업데이트를 복제하는 것이 좋습니다.
또는 그냥 사용git reset --hard && git pull --no-rebase && git push
이게 당신에게 효과가 있다면요.
언급URL : https://stackoverflow.com/questions/23517464/error-cannot-pull-with-rebase-you-have-unstaged-changes
'sourcecode' 카테고리의 다른 글
테이블 정의를 표시하기 위한 T-SQL 쿼리? (0) | 2023.06.28 |
---|---|
UI 레이블 layer.cornerRadius가 iOS 7.1에서 작동하지 않음 (0) | 2023.06.28 |
깃 풀 대 깃 베이스 (0) | 2023.06.28 |
views.py 을 여러 파일로 분할 (0) | 2023.06.28 |
String.indexOf 함수 C (0) | 2023.06.28 |