2017-09-25 66 views
1

我對Git很新,我作爲實習生加入了一家公司。我(愚蠢地)通過拉我們的分期環境開始了我所有的分支機構。所以當我在github上進行比較時,有一百次提交,然後是地雷。 問題是,有太多的衝突推動這些分支在主人身上。從一個特定的提交開始一個新的分支(並刪除較舊的分支)

這就是爲什麼我拼命試圖找到一種方法來從一個特定的提交開始一個分支,而沒有以前(即來自暫存拉)的分支,只有最新的。 例如:

git pull origin staging 
[I did my stuff] 
git commit -m "some stuff done" 
[some other stuff] 
git commit -m "other stuff done"] 

我想回去調動「一些東西做」,而不必一切「拉起源升級」做了,也保持「其他的東西做」。

我已經檢查並嘗試了this topic上的解決方案,但它仍舊保留舊的提交。

謝謝!

回答

0

這聽起來像是你需要git cherry-pick的情況。

我會回到主,我明白你想要你的分支從頭開始,創建一個新的分支,然後櫻桃挑選你的提交。

  • git checkout master
  • git checkout -b my_branch
  • git cherry-pickcommit1
  • git cherry-pickcommit2

其中commit1commit2是你的第一次和第二次提交sha1哈希值。

如果主分支是你當你做了兩個提交時,你需要修改上面的命令。

  • 創建所需的特定起點,新的分支:
    • git checkout -b my_branch origin/master或其他一些SHA1哈希值,而不是origin/master
  • 做兩個櫻桃通過重置回原點/主採
  • 修復大師:
    • git checkout master
    • git reset --hard origin/master
  • 回到你的分支繼續工作:
    • git checkout my_branch

希望這會有所幫助。

+0

感謝它的工作,我仍然有很多conflits照顧,但它做了伎倆。我只想補充一點,'git reflog show --no-abbrev my-branch'對於查看哪些提交是每個分支中的地雷非常有用 –

相關問題