2011-11-09 33 views

回答

1

在你的問題中可能沒有足夠的信息來給出一個很好的答案,但這裏有可能是有用的指針。

在git中,你可以用命令git merge <OTHER-BRANCH>創建一個合併,它總是將另一個分支合併到你當前的提交中 - 通常這就是你所在分支的提示。因此,在最簡單的情況下,如果你提交的一個是在master尖端,另一種叫B,那麼你就可以做到以下幾點:

  • 確保你在mastergit checkout master
  • 合併Amaster有:git push origin master
:導致到 master分支在 origingit merge B

  • 如果您提交的一個不是在master尖端 - 讓我們說這就是所謂的A - 那麼你仍然可以創建一個合併從A提交和B有:

    git checkout A 
    git merge B 
    

    然而,這種合併commit將不包含master的歷史記錄,因此如果您將其推送到origin中的master,那麼這將重寫該存儲庫中的master的歷史記錄,這會在合作時產生問題。如果你想仍然與先走,你可以「強制」一推:

    git push -f origin HEAD:master 
    

    ...並避免混亂,你可能也想重置master分支指向該承諾:

    # Check that "git status" is clean, to avoid losing uncommitted work: 
    git status 
    
    # Create a new branch that points to where master used to be: 
    git branch old-master master 
    
    # Switch to the master branch: 
    git checkout master 
    
    # Reset the master branch to point to the merge commit you created above: 
    git reset --hard [email protected]{1} 
    
  • 0

    如果你想要2具體承諾,git cherry-pick就足夠了。如果你敢的話,直接從一個新的分支或者主人那裏做(如果你敢的話,主人通常是爲穩定的或者被釋放的東西保留的 - 不要破壞主人!)