2017-12-10 36 views
0

git repo를 체크 아웃하고 유사하지만 동일하지 않은 파일을 덮어 쓴 파일 중 하나를 덮어 씁니다. git diff은 일련의 공통 섹션을 보여 주지만 일부 추가 및 삭제 (---+++)도 표시합니다. 이 힘내 : 추가 및 삭제가 모두 포함 된 unstaged 파일을 편집하십시오.

-;; tab indents 
-(setq-default indent-tabs-mode nil) 
-(setq-default tab-width 2) 
-(setq indent-line-function 'insert-tab) 
+;; PDFLaTeX mode and source correlation 
+(setq TeX-PDF-mode t) 
+; (setq TeX-source-correlate-method 'synctex) 
+; (add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode) 

-;; increase default font size 
-(set-face-attribute 'default nil :height 100) 
+;;************************************************************ 
+;; configure HTML editing 
+;;************************************************************ 
+;; 

-;; DEL is deleting the wrong way 
-;; https://www.gnu.org/software/emacs/manual/html_node/emacs/DEL-Does-Not-Delete.html 
-(normal-erase-is-backspace-mode 1) 
+;; Test 
+(add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode)) 
+(autoload 'javascript-mode "javascript" nil t) 
+(setq js-indent-level 2) 
이 나는 추가 및 삭제 모두이 unstaged 파일을 편집 할 수있는 방법

을 표시 : 여기 .emacs와 예입니다? 즉, 기본적으로이 파일이 병합 후에 충돌하는 것처럼 내가 원하는 두 버전의 부분을 가져갈 수 있습니다.

한 가지 방법은 빈 분기에서 새 파일을 커밋하고 병합 충돌을 만든 다음 수동으로 수정하는 것입니다. 더 쉬운 방법이 있어야합니다. 특히 git diff이 본질적으로 이미 내가 원하는 대부분을 보여주고 있습니다. (파일의 나머지 부분 만).

이상한 소리가 들리지만, 종종 managing config files as described here을 설치하고 새 컴퓨터를 설치하면 발생합니다.

답변

1

여기서는 git difftool이 유용 할 것이라고 생각합니다. 당신은 차이를 검토 할 수있는하는은 diff 도구에서 파일을 엽니 다 같은 vimdiff, 를 사용하고 필요한 편집 할 수 있습니다 :

git difftool -t vimdiff -y -- path/to/file 

다른 유효한 -t (도구) 값을 포함을 emerge, kompare, meld, 등으로 자신을 정의 할 수 있습니다. 자세한 내용은 git difftool --helpgit difftool --tool-help을 참조하십시오.

-p 옵션을 사용하면 대화 형으로 추가되어야 변경 어떤 심술쟁이 결정할 수 있습니다 :

0

git add 명령은 인덱스에 추가하기 전에 패치를 편집하는 데 사용할 수있는 두 가지 옵션 (git-add reference 참조)이있다. 패치가 분할되어 다른 작업들 사이에서 편집 될 수있는 행크 당 메뉴를 불러옵니다. 편집을 위해 e을 사용하면 해당 덩어리의 diff를 편집 할 수있는 편집기가 나타납니다.

-e 옵션은 덩어리 메뉴마다 건너 뛰고 모든 차이점에 대해 하나의 큰 패치로 편집기를 직접 불러옵니다.

(아마도 수정 된) 패치가 인덱스에 추가됩니다 (즉, 차이가 스테이징 됨). 직접적으로 커밋 될 수 있습니다. 이렇게하면 작업 복사본이 초기 상태로 남게되며 편집은 인덱스에서만 수행됩니다. 인덱스와 작업 복사본 사이의 나머지 (또는 새로 추가 된) 차이는 git checkout -- <file>을 사용하여 간단히 삭제할 수 있습니다 (또는 git checkout -p을 사용하여 다시 삭제할 수 있음).