[git] 실제 응용에서 발생할 수 있는 문제

1. git pull 시간의 충돌에 대한 해결책 | 코드 충돌을 처리하는 방법

질문:

error: Your local changes to the following files would be overwritten by merge:
       xxx/xxx/xxx.java
Please, commit your changes or stash them before you can merge.
Aborting

방법 1: git stash 명령 임시 저장소.

  1. git stash 명령은 먼저 모든 로컬 수정 사항을 임시로 저장합니다. 여기서 stash@{0}는 방금 저장된 표시입니다. 이 태그를 통해 후속 액세스가 가능합니다.
  2. git pull 명령, 풀 코드
  3. git stash pop stash@{0}, 숨김 콘텐츠를 복원합니다. Git 스택에서 마지막으로 저장된 콘텐츠를 읽고 관련 콘텐츠를 작업 공간에 복원합니다. Stash 콘텐츠가 여러 개 있을 수 있으므로 스택을 사용하여 관리합니다.
    시스템이 다음과 유사한 정보를 표시하는 경우:
    Auto-merging c/environ.c CONFLICT(컨텐츠): c/environ.c에서 병합 충돌은
    시스템이 수정된 컨텐츠를 자동으로 병합하지만 충돌이 있음을 의미합니다. 해결.
  4. 파일의 충돌하는 부분을 해결합니다.
    업데이트된 업스트림과 ===== 사이의 내용은 풀의 내용이고 ====와 숨겨진 변경 사이의 내용은 로컬 수정의 내용입니다. 이 경우 git은 어떤 줄의 내용이 필요한지 모르기 때문에 필요한 내용을 스스로 결정해야 합니다.
    해결이 완료되면 정상적으로 제출하시면 됩니다.
    5. stash를 삭제하려면
    git stash drop stash@{0} 명령을 사용하고, stash 번호를 추가하지 않으면 기본적으로 가장 최근 번호, 즉 숫자 0을 삭제합니다. 또는 모든 숨김을 지우려면 git stash clear 명령을 사용하십시오.

git 명령:
git stash pop은 가장 최근의 stash에서 읽고 복원합니다.
git stash list: Git 스택의 모든 백업을 표시합니다. 이 목록을 사용하여 복원할 위치를 결정할 수 있습니다.
git stash clear: Git 스택을 지웁니다. 이때 gitg와 같은 그래픽 도구를 사용하면 원래 stash의 모든 노드가 사라진 것을 알 수 있습니다.
git stash: 현재 작업 공간의 콘텐츠를 백업하고, 최신 제출에서 관련 콘텐츠를 읽고, 작업 공간이 마지막 제출의 콘텐츠와 일치하는지 확인합니다. 동시에 현재 작업 공간 콘텐츠를 Git 스택에 저장합니다.

방법 2: 로컬 수정을 포기하고 직접 덮어쓰기

git reset --hard
git pull

방법 3: 커밋

커밋 후 pull에서 충돌 표시 -> 충돌을 해결하기 위해 수동으로 병합 -> 다시 커밋 -> 푸시
1. 먼저 로컬 변경 사항을 로컬 웨어하우스에 제출
2. 원격 웨어하우스에서 코드를 풀하고 git pull명령 사용
3. 있는 경우 충돌, 수동
4. 해결이 완료된 후 git add명령을 사용하여 파일을 임시 저장 영역에 추가
5. git commit -m "message"명령을 사용하여 수정 사항 제출
6. 마지막으로 명령을 사용하여 git push origin master로컬 코드를 원격으로 푸시 창고.
또는
1. 먼저 git status 명령을 사용하여 충돌 파일을 보고 충돌 파일 및 충돌 위치를 확인합니다.
2. 충돌 파일을 열고 프롬프트에 따라 충돌 코드 블록을 찾은 다음 코드를 수동으로 수정하고 충돌을 해결합니다.
3. 수정이 완료되면 git add 명령을 사용하여 수정된 파일을 임시 저장 영역에 추가합니다.
4. git commit 명령을 사용하여 수정 사항을 제출하고 일부 설명 정보를 추가합니다.
5. 마지막으로 git push 명령을 사용하여 로컬 코드를 원격 웨어하우스로 푸시합니다.

추천

출처blog.csdn.net/m0_46459413/article/details/131422675