source

Git와 명령줄을 사용하여 병합하는 동안 로컬 파일 또는 원격 파일을 유지하는 방법은 무엇입니까?

lovecheck 2023. 7. 16. 13:40
반응형

Git와 명령줄을 사용하여 병합하는 동안 로컬 파일 또는 원격 파일을 유지하는 방법은 무엇입니까?

vimdiff를 사용하여 수정사항을 병합하는 방법을 알고 있지만, 전체 파일이 보관하거나 버릴 수 있다는 것을 알고 있다고 가정하면 어떻게 해야 합니까?

각각의 vimdiff를 열고 싶지 않습니다. '로컬 유지' 또는 '원격 유지' 명령을 변경합니다.

E.G: 누군가 창 아래에서 파일을 열고 EOL을 변경한 다음 커밋했기 때문에 변경된 것으로 표시된 파일과 병합했습니다.병합할 때, 나는 나만의 버전을 유지하고 그의 버전을 버리고 싶습니다.

저는 그 반대에도 관심이 있습니다.큰 실수를 저질렀기 때문에 변경 사항을 삭제하고 원격 파일을 수락하려고 합니다.

다음을 수행할 수도 있습니다.

git checkout --theirs /path/to/file

원격 파일을 보관하려면 다음을 수행합니다.

git checkout --ours /path/to/file

로컬 파일을 보관합니다.

그리고나서git add그들과 모든 것이 끝났습니다.

판:이것은 잠시 동안이라는 것을 명심하세요.merge시나리오중에rebase --theirs당신이 일하던 지점을 말합니다.

이러한 접근 방식은 각 파일을 개별적으로 선택할 필요가 없으므로 보다 간단합니다.

# keep remote files
git merge --strategy-option theirs
# keep local files
git merge --strategy-option ours

또는

# keep remote files
git pull -Xtheirs
# keep local files
git pull -Xours

다음에서 직접 복사:풀 중에 변경된 Git 병합 충돌 해결

git checkout {branch-name} -- {file-name}

선택한 분기의 파일이 사용됩니다.

나는 이것이 좋습니다 왜냐하면posh-git자동 완성은 이것과 잘 어울립니다.또한 원격 지점과 로컬 지점에 대한 모호성도 제거합니다.그리고.--theirs어쨌든 저한테는 통하지 않았어요.

라인 엔드 관련 항목은 다음을 참조하십시오.man git-merge:

--ignore-space-change 
--ignore-all-space 
--ignore-space-at-eol

추가해야 합니다.autocrlf = false및/또는safecrlf = false윈도우즈 클론(.git/config)으로

Gitmerge 도구 사용

병합 도구를 다음과 같이 구성하는 경우:

git config mergetool.cp.cmd '/bin/cp -v "$REMOTE" "$MERGED"'
git config mergetool.cp.trustExitCode true

그럼 간단한

git mergetool --tool=cp
git mergetool --tool=cp -- paths/to/files.txt
git mergetool --tool=cp -y -- paths/to/files.txt # without prompting

그 일을 할 것입니다.

단순 git 명령 사용

다른 경우에는, 제 생각엔

git checkout HEAD -- path/to/myfile.txt

방법을 강구해야 합니다.

편집을 통해 반대로 작업을 망쳤기 때문):

git checkout remote/branch_to_merge -- path/to/myfile.txt

하루 전에 이 질문과 매우 유사한 질문을 던졌지만, 제 질문은 데이터베이스 sqlite3와 관련된 것이기 때문에 약간 다릅니다.

그런데 이 사이트의 매니저가 질문을 삭제해달라고 해서 삭제를 했는데 결국 저를 차단했습니다.

어쨌든, 제 문제에 대한 대답은 "git checkout -- their db.sqlite3"였습니다.

데이터베이스와 관련된 것으로, 단순히 "git checkout --their db.sqlite3"에 경로를 입력할 필요가 없습니다.

저는 저와 같은 문제를 겪은 사람에게 이 답변을 남깁니다.

언급URL : https://stackoverflow.com/questions/6650215/how-to-keep-the-local-file-or-the-remote-file-during-merge-using-git-and-the-com

반응형