Git 충돌 제거 설명서(git mergetool 사용 방법)
4031 단어 Git
파일 편집 충돌 시
다음은 흔히 볼 수 있는 충돌 화면이다.
여러분은 어떤 방법으로 충돌을 하셨나요?
비록vim와emacs에서 직접 편집하는 사람이 비교적 많지만 실제로 열어보면 다음과 같은 차이가 나타난다고 생각합니다.
이 화면만 보면 어떻게 조작해야 좋을지 모르겠어요.(Objective-C의 ARC/MRC 양측 모두 개발 경험이 있는 사람은 눈을 감으세요...)
git에는 이런 충돌을 지원하는 메르지
git mergetool
의 지령이 탑재되어 있다.이렇게 Enter 키를 누르면 아래 화면이 올라갑니다.
화면의 넓이 때문에 글씨체가 비교적 작기 때문에 여기서'메르지의 차별이 나타나기 전의 상태'와'메르지의 차별을 하고 싶다'는 점에 주목해 보겠습니다.
이 두 가지를 비교해 보면 알 수 있듯이 @property의'*adapter'가'*webViewAdapter'로 바뀌었다.
merge의 차분 내용은 사실상 상기 변수 이름의 변경입니다.
따라서'merge 결과로 저장된 파일'에서 충돌하는 곳의 상단(화면 내 HEAD 측)에서 adaper를 웹 뷰어댑터로 덮어씁니다.아래쪽과 충돌 표시를 삭제하는 것을 잊지 마세요.
참고로 git merge에서 충돌하는 상황에서 중간은 branch가 가지를 나눌 때의 상태이고 왼쪽은 현재 branch에 추가된 차, 오른쪽은 merge의 branch에 추가된 차(3-way merge)를 원한다.
따라서 중간과 왼쪽을 비교하면 현재 브랜치가 어떻게 전진하고 있는지 확인할 수 있다.
이번에 ARC에 대응하는 리턴은 스트롱이고 assign은 weak이다.
완료되면 편집기를 저장하고 종료합니다.이전 상태는 해당 파일입니다.orig로 저장합니다.자동git add니까 제출하세요.
※ 또한, 취소 시 1회 저장하지 않고 편집기를 종료합니다.
※ 그나저나 지금은 vim·emacs만 지원하는 설정 방법도 있으니 말을 잘하면 메시지 등을 남겨주세요.
(Xcode용) GUI의 diff 도구가 시작되는 경우
오픈diff를 자주 켜는 것 같습니다. 다음 지령으로vimdiff로 전환해 주십시오.
git config --global merge.tool vimdiff
(번외편)mergetool을 사용하지 않고 유사한 방법으로merge
종교관계로 vim를 사용할 수 없거나 화면이 좁은 사람에게는 좋은 소식이다.
일반적인 충돌 표시라면mergetool 한가운데 있는 화면(merge의 차분이 만들어지기 전의 상태, BASE)은 부족하지만 충돌 표시에 그걸 표시하는 옵션이 있습니다.
git config --global merge.conflictstyle diff3
충돌 표시는 다음과 같습니다.<<<<<<< HEAD
merge前の状態
||||||| merged common ancestors
mergeしたい差分が作られる直前の状態
=======
mergeしたい差分
>>>>>>> branch
어쨌든 일단 설정해 놔도 손해 안 봐.mergetool처럼 큰 conflict를 사용할 때도 편리하지 않습니다.※ 단, 충돌이 없는 곳에 추가된 변경 사항을 파악할 수 없기 때문에 큰 차이점은 메르게토올이나 git diff를 조합해서 사용하는 것이 좋습니다.
참조: http://qiita.com/hchbaw/items/1191c2627307a4673b1b
파일 삭제 충돌 시 (path conflict)
삭제된 파일이 편집될 때 발생합니다.
git rm path/to/target/file
※ unmerged 같은 메시지가 나오지만, 삭제 내용은 잘 반영됩니다.동차분을 반복할 때
git는 충돌 후의 차분을 저장하는merge 결과를 재사용하는rererere 기능이 있습니다.
mentena와 발매 담당은 같은 차이로 여러 번merge를 할 때 편리합니다.
다음 명령을 사용할 수 있습니다.
git config --global rerere.enabled true
Reference
이 문제에 관하여(Git 충돌 제거 설명서(git mergetool 사용 방법)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuya_presto/items/5d99499cf96c0ebb09f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)