2017-10-10 58 views
1

所以我有masterfeature分支。我做的:如何讓git在重新綁定時生成REMOTE,LOCAL文件?

git checkout feature 
git rebase master 

我得到了一個合併衝突:

Unmerged paths: 
(use "git reset HEAD <file>..." to unstage) 
(use "git add <file>..." to mark resolution) 

    both modified: /src/... 

我運行合併工具

git mergetool 

衝突是骯髒和我的合併工具是沒有任何幫助。所以,我需要手動解決它,所以我關閉合並工具,我的回答是:

Was the merge successful [y/n]? N 
Continue merging other unresolved paths [y/n]? Y 

這是唯一的衝突,所以我們退出

現在我希望看到4個文件:遠程,本地, BASE,備份與衝突的文件,但我沒有看到它們。

問:

  • 我如何能看到REMOTE本地基和備份,同時做墊底?
+1

您可以再次運行'git mergetool'(也許使用標準的mergetool,例如'vimdiff')並保存'git mergetool'生成的臨時BASE,LOCAL和REMOTE文件 – Leon

+1

Git不會創建您期望的4個文件。它們可能由您的mergetool創建。所以我猜這些文件不存在,如果你不使用mergetool。 Git在合併的文件中添加衝突標記。您可以打開文件,處理衝突部分。保留你需要的東西,並刪除你不需要的東西。保存並退出,然後運行'git add'和'git rebase --continue'。 – ElpieKay

+0

@ElpieKay查看我自己的回答 –

回答

0

所以原來的git本身併產生所有這些文件,所有你需要做的是終止合併過程(而不是關閉它輕輕地回答所有問題):

Was the merge successful [y/n]? 

命中Ctrl + C ,然後做

git status 

觀察

Untracked files: 
(use "git add <file>..." to include in what will be committed) 

    scripts/src/models/editing/main/basic-block/block-object-attribute-fields_BACKUP_9504.tsx 
    scripts/src/models/editing/main/basic-block/block-object-attribute-fields_BASE_9504.tsx 
    scripts/src/models/editing/main/basic-block/block-object-attribute-fields_LOCAL_9504.tsx 
    scripts/src/models/editing/main/basic-block/block-object-attribute-fields_REMOTE_9504.tsx 
+0

請注意,這些不同文件中的每一個實際上都只是一個文件,在某個時間點被提交,通過'git mergetool'代碼提取到一個新名稱。你可能也想看看我的(長)回答https://stackoverflow.com/q/44212642/1256452(這是關於'git merge'而不是'git rebase',但是當rebase需要做一個合併時,它調用相同的合併代碼,並保留相同類型的索引條目)。 – torek

+0

獨立於以上所有內容,我建議將'merge.conflictStyle'設置爲'diff3',以便在低級別衝突期間標記的文件Git包含來自所有三個版本(在此稱爲base,local和remote)的行; base,'--ours'和其他地方的' - 他們')。 – torek

相關問題