'git pull'을 사용하여 로컬 변경 사항을 강제로 덮어쓰는 방법

git에서 프로젝트 작업을 할 때 로컬 변경 사항이 있어서 사용할 수 없다는 오류git pull가 발생한 적이 있습니까?

error: Untracked working tree file 'App.vue' would be overwritten by merge


이것은 일반적으로 가져오는 리포지토리에 일부 변경 사항이 커밋되었지만 비슷한 파일이 로컬에 있습니다. 예를 들어 파일이 README.md라는 리포지토리에 실수로 추가되고 로컬 버전에 이미 README.md가 있는 경우입니다.

하지만 때로는 저장소에 있는 파일로 파일을 강제로 덮어쓰고 싶을 수도 있습니다. 이 시나리오에서는 로컬 변경 사항이 원격 저장소에서 발견된 변경 사항으로 대체됩니다.

git pull 강제



a git pull 를 강제 실행하려면 다음 세 가지를 수행해야 합니다.
  • 먼저 모든 원격 저장소 변경 사항을 동기화하고 가져옵니다.
  • 현재 분기를 백업합니다. 강제로 끌어오면 모든 변경 사항을 덮어쓰게 됩니다.
  • 강제로 git pull .

  • 여기서 해야 할 중요한 일은 모든 로컬 변경 사항을 백업 분기에 커밋하는 백업입니다. 파일을 덮어쓸까 봐 걱정된다면 파일을 다른 곳에 복사할 수도 있습니다. 로컬 변경 사항을 다른 브랜치로 커밋/백업하지 않으면 덮어쓰게 되므로 주의하시기 바랍니다. :)
    git pull를 강제 실행하려면 다음 명령을 실행하여 백업 분기를 만든 다음 마스터 분기에서 git pull를 강제 실행합니다.

    git fetch --all
    # Creates a new branch
    git branch my-backup-branch
    # Switch to the new branch.. we'll use it to backup our local changes
    git switch my-backup-branch
    # Add all files to a commit
    git add .
    # Commit the new branch, so that it is saved
    git commit -m "Backup of branch"
    # Switch back to our main branch, `master`
    git switch master
    # Force git pull using `git reset --hard`
    git reset --hard origin/master
    


    먼저 git fetch --all가 원격을 로컬에 동기화합니다. 그런 다음 git branch my-backup-branch는 백업을 위해 전환하는 새 분기를 생성합니다. 그런 다음 commit 를 추가하여 해당 백업 브랜치 my-backup-branch 에 대한 변경 사항을 커밋하므로 내용이 저장된 상태로 유지됩니다. 변경 사항을 백업 분기에 커밋하지 않으면 변경 사항이 손실됩니다.

    그런 다음 메인 브랜치가 master 라고 가정하고 메인 브랜치 master 로 다시 전환합니다. 다른 것으로 불리는 경우 해당 명령을 사용해야 합니다. git branch --list 를 실행하여 전환할 수 있는 다른 모든 분기를 볼 수 있습니다.

    마지막으로 git reset --hard origin/master를 사용하여 git pull을 강제 실행합니다. 이렇게 하면 로컬 변경 사항을 강제로 덮어씁니다.

    그리고 끝났습니다. 이제 로컬 변경 사항이 브랜치my-backup-branch에 백업되고 모든 원격 변경 사항이 브랜치master에 강제 적용됩니다.

    힘내 당기기 강제 - 핵심 명령



    원격 저장소에서 git pull을 강제 실행하는 핵심 명령은 git reset --hard origin/master 입니다. 다른 명령은 백업을 만들어 데이터를 잃지 않도록 하는 것입니다!

    원본/마스터를 찾을 수 없습니다.


    origin/master 를 찾을 수 없다면 이제 오리진에 해당 분기가 있을 수 있습니다. 대신 git branch -r를 실행하여 원격 브랜치를 확인하고 원하는 브랜치git reset를 선택할 수 있습니다.

    좋은 웹페이지 즐겨찾기