2016-03-17 51 views
2

其實我的問題是:
有沒有辦法從文件夾合併在分支根?git的合併,支根

我要的是:

  1. 讀樹從分支分支文件夾
  2. 做出一些改變下分支(添加子樹文件夾中的文件)
  3. 中子樹文件夾中的更改(添加的文件)合併爲分支

我試過這個教程:https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging
但結果出乎意料:

我所做的:

$ git init 
    $ touch fileInMaster 
    $ git add -A 
    $ git commit --all -m 'initial commit' 
    $ git checkout master 
    $ git remote add rack_remote https://github.com/schacon/rack.git 
    $ git fetch rack_remote 
    $ git checkout -b rack_branch rack_remote/master 
    $ git checkout master 
    $ git read-tree --prefix=rack/ -u rack_branch 
    $ git add -A 
    $ git commit --all -m 'After read-tree to rack folder' 
    $ echo 0 > rack/fileInRack 
    $ git add -A 
    $ git commit --all -m 'Add fileInRack file to rack folder' 
    $ git merge --squash -s subtree --no-commit rack_branch 

什麼我想到的是:

  • 新文件'fileInRack'in 桅杆呃分公司文件夾
  • 新文件 'fileInRack' 根rack_branch的

但子樹合併混帳後通知我:

刪除機架/ fileInRack
壁球提交 - 沒有更新HEAD
自動合併進行得很順利;停止之前提交請求

但我需要添加,而不是刪除。

那麼,我做錯了什麼?
有沒有其他的方法可以合併主文件夾分支

回答

0

而不是

git merge --squash -s subtree --no-commit rack_branch 

你可以做

git checkout rack_branch 
git merge --squash -s recursive -Xsubtree --allow-unrelated-histories master 
git commit -m "commit fileInRack to rack_branch" 

編輯:我碰到這個職位跌跌撞撞的原因是,我有一個類似的問題,和我上面的解決方案不起作用(see here )。請注意關於--no-ff選項的編輯。總是使用這個選項可能是個好主意?