我正在嘗試使用git進行本地工作流管理,並着眼於爲我的團隊提出建議。所以我想充分了解我的頭腦,然後我會反駁一些我不明白的事情。Rebase,但忽略一個上游提交?
在我進入git-land的時候,我有一個SVN倉庫,讓我和另外一個開發人員開始工作。我們的PM改變了項目的時間表,以便他的子項目幾乎立即投入生產,然後在大約一個月內投入生產。我們都在開發相同的SVN回購協議,我的東西已經開始對用戶可見,所以需要爲即將到來的生產遷移而退出。
我更新了我的SVN工作目錄。我在同一個目錄中創建了一個git倉庫(忽略.svn等)。我做了git branch map-dev
爲我的(地圖相關的)子項目創建開發分支。我做了git checkout master
回到SVN-synced分支,並編輯這些文件來取出我的工作。一旦我的項目的早期部分不再可見,我就承諾將git(評論「地圖搜索的東西呈現爲不可見」)提交給SVN,並將SVN內容推送到分段。所以現在在分段/測試服務器上有什麼東西沒有我的東西和他所有的,這很好。
幾天後,我開發了map-dev
分支,我的同事檢查了一些SVN的東西,它並沒有真正影響我在做什麼,但我想保持同步用。
I git checkout master
。我svn up
。 I git commit -a
,註釋「來自SVN的更新」。
現在我想,好吧,rebase map-dev
跟那些主人的變化吧?所以我這樣做,我解決了一兩個衝突,而且一切都顯得格格不入。然後我注意到我在master
上所做的更改稱爲「地圖搜索呈現不可見」,這是目前的情況。在我的開發分支上沒有更近的提交,它只是在回購首次提交時的情況。
所以。我用git revert --hard ORIG_HEAD
來回到rebase之前的位置。我想要的是我剛剛在master
中輸入的CSV更改,但不是讓我的作品隱形的提交。我應該怎麼做?
謝謝!每次我引入SVN更新時,我需要這樣做嗎?因爲這將繼續發生。 – 2011-03-30 14:03:28
之後,你應該能夠將'master'合併到'map_dev'中,而不需要經過所有額外的步驟。那些步驟是從'master'中刪除您的代碼刪除提交,不應該再次執行。 – Jonathan 2011-03-30 14:05:07
...因爲它的恢復將在合併提交中的map_dev的頂端。得到它了。 – 2011-03-30 14:10:40