programing

Git remote에서 풀링할 때 원격 변경을 사용하여 충돌 해결

newstyles 2023. 5. 4. 19:43

Git remote에서 풀링할 때 원격 변경을 사용하여 충돌 해결

GitHub 보고서의 코드를 서버로 끌어오려고 하는데 병합 충돌 때문에 끌어오기가 계속 실패합니다.마지막 풀 이후 로컬 서버에서 발생한 변경 사항을 유지하지 않습니다.

그래서 충돌 때문에 저를 귀찮게 하는 대신 GitHub에 있는 모든 버전으로 Git을 덮어쓰게 할 수 있는 방법이 있을까요?

로컬에서 수행한 커밋을 정말로 취소하려면, 즉 다시는 커밋을 기록에 남기지 마십시오. 풀 방법을 묻는 것이 아닙니다. 풀은 병합을 의미하며 병합할 필요가 없습니다.필요한 것은 다음과 같습니다.

# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

저는 개인적으로 현재 헤드에 백업 지점을 먼저 생성하는 것이 좋습니다. 그러면 이 지점이 잘못된 아이디어라는 것을 알게 되면 이 지점을 잊어버리지 않을 것입니다.

반면에 이러한 커밋을 유지하고 오리진과 병합한 것처럼 만들고 병합으로 인해 버전이 오리진에서만 유지되도록 하려면 다음을 사용할 수 있습니다.ours병합 전략:

# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master

nvm이 가리키는 중복 링크의 응답을 사용할 수 있습니다.

또는 변경 사항을 사용하여 충돌을 해결할 수 있습니다(그러나 일부 변경 사항은 원격 버전과 충돌하지 않는 경우 유지될 수 있습니다).

git pull -s recursive -X theirs

언급URL : https://stackoverflow.com/questions/4785107/resolve-conflicts-using-remote-changes-when-pulling-from-git-remote