2016-08-08 73 views
0

我從git克隆了一個項目,並且做了一些更改,現在我想導入在原始回購中完成的更改,並在同一時間保留更改! 我添加了一個新的遠程:從另一個回購git合併

git add remote original_repo

git fetch original_repo

git checkout -b branch_for_merge original_repo/master

的問題是,當我這樣做: git status

我找不到更改的文件,它給我:

nothing to commit, working directory clean 

我應該怎麼做才能找到變化並解決衝突併合並分支?

回答

2

git checkout -b branch_for_merge original_repo/master

這使得branch_for_merge指向與original_repo/master相同的提交,完全沒有意義。

你想要做的是什麼(假設你做了你對你的本地master分行工作):

git checkout master # just to be sure 
git pull original_repo master 

(因爲你已經這樣做了自己無操作),這將獲取從original_repo任何改變和然後爲你做一個git merge original_repo/master。與git fetch ; git merge original/repo_master相比,唯一的好處是提供更有用的提交消息(當然,您可以編輯它)。

+0

你救了我的命! thx天才 –

+0

我喜歡拯救生命。順便說一句,其他答案中提到的'git rebase'也很好,現在您可以閱讀兩種方法並自行決定。你現在有兩個救命恩人! :) – AnoE

1

什麼名字,你已經給你的本地機器(例如你的遠程倉庫你可以做類似

`git fetch` 

上述指令將進入遠程倉庫和besically複製無論是存在的,它存儲在。origin/...)。請記住,此時您的本地存儲庫不會與遠程存儲庫的本地副本合併。

`git checkout <branch>` 

上述指令將改變分支到您在<branch>中指定的任何一個。

`git rebase <remote>/<branch>` 

現在,當你在選擇<branch>,該指令將採取一切是<branch>並回復它的<remote>/<branch>頂部。

或者,您可以運行

`git merge <remote>/<branch>` 

這將使合併提交,並把你的<branch>上最新與<remote>/<branch>