簡體   English   中英

從Subversion過渡到Git,我如何優雅地推送到heroku?

[英]Transitioned from Subversion to Git, how do I push to heroku gracefully?

我一直在使用Subversion進行源代碼控制,僅與git結合使用才能將其部署(推送)到heroku。 我的模式是:從遠程Subversion存儲庫中的最新主更新本地工作副本。 然后執行git commit和git push heroku(Git設置為忽略.svn內容)。 這個工作副本我僅用於推送到heroku,我還有另一個Subversion文件夾用於進行實時開發,並提交到遠程Subversion存儲庫進行跟蹤。

我現在已經完全切換到git。 我從Subversion完全導入了新的遠程git存儲庫。 我已經成功地在本地git repo(源)的工作副本上工作,並在適合我的時候推送更改(也與其他開發人員合作,但我基本上是運行該操作)。

我的問題:

現在,我想返回到我以前用來推送到heroku的OTHER git工作副本(其中也包含.svn /內容)。 我正在考慮只是將新的git存儲庫添加為.git / config中的[origin]條目。從新的git遠程獲取最新更改,並推送到heroku,但我想知道它是否會發瘋。

它將嘗試合並並感到困惑,不是嗎? 而且,即使拉動有效,heroku遙控器是否也會對源自某些新git repo的推動感到困惑?

我可以破壞(刪除)該工作副本(用於從Subversion推送到heroku),並為我的新git存儲庫創建新的克隆,然后將heroku添加到.git / config中。 但是我擔心推送到heroku仍然會使它感到困惑,因為我曾經從另一個工作副本中推送。

任何建議都很好!

提前致謝!

如果我對您的理解正確,那么您想切換回以前的SVN存儲庫作為工作副本,並且要保留舊的SVN歷史記錄?

有幾個可用的選項。

  1. 將最近的更改從新的Git存儲庫推送到Heroku,然后切換到舊的存儲庫並從Heroku拉出。 這將使您的舊存儲庫保持最新狀態。

  2. 臨時更改舊存儲庫的配置文件中的URL,以指向新存儲庫的本地路徑。 從那里拉出最近的更改,然后在完成后還原回Heroku URL。 這還將使您的舊存儲庫保持最新狀態。

第一個選項是最方便的選擇,第二個是很長的路要走。 無論哪種方式,您都將獲得包含所有歷史記錄的最新本地存儲庫的相同凈結果。 在任何一種情況下都可以處置多余的新存儲庫。

編輯:要解決您對Heroku是否會關心提交源的擔憂,總之,Heroku上的存儲庫不是另一個git倉庫,它接受經過身份驗證的用戶的提交。

只要憑據正確,原始存儲庫就無關緊要。 這是DVCS的妙處-沒有一個可控制的或可損壞的存儲庫-您現在完全有可能從另一台計算機上的Heroku中克隆並從那里繼續工作。 只要您的憑據相同,歷史記錄就會顯示您推送的所有提交,但不在乎從何處提交。

如果您只是想使用一個干凈的存儲庫來工作,那么新存儲庫將是您的最愛。 可以刪除舊版本而不會造成不良影響。

為了證明這一點-在新存儲庫和舊存儲庫中檢查SHA-1哈希是否有提交,您將看到它們是相同的。 哈希對於所有提交都是唯一的,並且可以隨時用於檢查代碼完整性。 對於任何給定的哈希,永遠不會有一個以上的更改。

  • 附帶說明一下,該存儲庫是便攜式的,因為它完全是獨立的,可以在您的存儲空間中自由移動,甚至可以在外部存儲設備(例如USB拇指驅動器)上使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM