我已經刪除了本地的所有文件夾/文件,然後將其提交,然後按下它。所以目前,我在bitbucket上的主分支是空的。現在我需要將2版本設置爲主分支。我怎樣才能做到這一點?如何將我的項目的舊版本作爲主(當前工作版本)?
我可以開2版之前是這樣的:
$ git checkout {token}
但在這種情況下,路徑是這樣的:~/Desktop/repo ({token})
..!那麼我不想那樣,我想把2版本的全部價值複製到master分支中。我怎樣才能做到這一點?
我已經刪除了本地的所有文件夾/文件,然後將其提交,然後按下它。所以目前,我在bitbucket上的主分支是空的。現在我需要將2版本設置爲主分支。我怎樣才能做到這一點?如何將我的項目的舊版本作爲主(當前工作版本)?
我可以開2版之前是這樣的:
$ git checkout {token}
但在這種情況下,路徑是這樣的:~/Desktop/repo ({token})
..!那麼我不想那樣,我想把2版本的全部價值複製到master分支中。我怎樣才能做到這一點?
你最關心的是如何更新服務器,而不是本地的?如果是這樣,您最簡單的解決方案可能就是將該特定分支推送爲遠程主分支。
$ git push -f origin {token}:master
,說推到origin
你想要的{token}
,並更新遠程master
分支是具體的承諾,改變歷史如果需要的話。
然後,您可以重新克隆您的工作空間以進行「全新開始」。
(有許多方法來實現這一目標,包括與更多的git複雜,但我覺得上面的是你的最直接和易於理解的解決方案)
據我所知,這個命令將刪除所有舊提交。我說得對嗎? – Shafizadeh
如果任何分支不再引用「舊提交」,他們將有資格進行垃圾回收。 –
顯然,你希望有一個新的提交上以前的一些頂部,有一些以前的提交內容?
如果是這樣,我應該這樣做:
# create branch based on some old commit
git checkout -b merge-to-old-commit token
# do a simple change, just to get a new commit with a message
# then commit it
git commit -m "pulled foo back from previous commit for merging into HEAD."
# and merge that to your master/HEAD
git checkout master
git merge --no-commit merge-to-old-commit
究竟做你的意思'我需要設置2版本以前作爲主branch'?你只是希望主人在那個提交(所有它的歷史?),或者你想要那個提交的文件作爲你的空的bitbucket分支(沒有歷史記錄)的新提交?或者你的意思是完全不同的? – Guildencrantz