Skip to main content

Command Palette

Search for a command to run...

版本控制從 TFS 轉為 GIT 並保留所有變更集

Updated
1 min read
版本控制從 TFS 轉為 GIT 並保留所有變更集

migrate-an-existing-project-from-tfs-to-git-with-changeset-history-intact

一直以來公司都有在使用原始碼版本控制,只是隨著時間的遷移,工具就著變化;從一開始的SVN到TFS到現在的GIT,在轉移機制的過程中,都會遇到一個問題就是變更集要怎麼保留,從 SVN 到 TFS 因為那時數量很少,所以那時也就算了,但是到了從TFS轉到GIT的時候,因為專案與版本都開始龐大起來,不太可能直接忽略它,所以就 Google 了一下如何轉移

找到了一個非常好用的工具Git-TF,這套工具提供了幾乎所有會用到的功能,從 TFS 複製專案到變成 GIT Repository 直接一行指令碼解決

在這邊紀錄一下,避免以後還是要用到又忘了

Step 1. 相關工具安裝

在 Windows 上安裝 git-tf 最好的方式是透過 Chocolatey 來進行安裝動作,因為它會自動幫你寫入 PATH 變數。

當然也可以手動安裝 git-tf,其專案在 git-tf 上,可自行去下載與看如何安裝

安裝 Chocolatey

官網上提供了幾種方式來進行安裝:Cmd.exe, PowerShell.exe, PowerShell v3+,我這邊使用 Cmd.exe 來安裝,在 CMD 中執行以下指令

安裝 Chocolatey

Chocolatey 安裝完畢

確認 Chocolatey 安裝成功

若沒有出現指令,可以重開 CMD 視窗

安裝 git-tf

Cmd.exe 底下鍵入以下指令即可安裝 git-tf

安裝 git-tf

git-tf 安裝完畢

確認 git-tf 安裝成功

Step 2 — 複製專案

透過指令從 TFS 或 visualstudio.com 複製 TFS 專案到本機指定的目錄下

複製 TFS 專案

複製 TFS 專案完畢

複製完後之資料夾列表

複製完後之 CHANGELOG

開始執行後,將會需要輸入驗證資訊(如果是使用 visualstudio.com,則需要使用替代驗證方式),一旦輸入完畢且驗證成功後,就會開始複製階段,其花費的時間會依據變更集的數量與 repository 的大小而定

Step 3. 環境整理與設定

複製完畢後,其版本控制就已經變成一個本地的 git repository,接下來就是要把 TFS 版控的一些檔案與設定給刪除,並加上 GIT 的一些設定檔

Step 4 . Commit & Push

完成以上步驟後,就已建立包含變更集完整的 GIT repository,接下來就看要把這個 repository 發行到哪裡去,例如說 GitHub、Bitbucket 或 visualstudio.com

那發行這部分就不再介紹了~

參考資料

More from this blog

Career-Ops 安裝與設定 — 用 AI 來幫你篩職缺、客製履歷

最近在看新的工作機會,光是瀏覽職缺、比對 JD、調整履歷就花了不少時間。 後來找到 Career-Ops 這個開源專案 作者 santifer 用這套系統篩了 740 多個職缺、產出 100 多份客製化履歷,最後拿到 Head of Applied AI 的 offer。 看起來蠻有意思的,所以我就在 Windows 上實際裝了一輪,這篇就來把整個安裝和設定的過程記錄下來。 我這邊搭配的 AI 後

Apr 12, 20265 min read
Career-Ops 安裝與設定 — 用 AI 來幫你篩職缺、客製履歷

讓 LLM 自動化你的 N8N 工作流程:n8n-mcp-server 安裝指南

前言 網路上一大堆都是在介紹如何在 N8N 裡面用 MCP 來呼叫其他工具,但是更多時候我希望 LLM 能直接幫我寫好或是修改 N8N 的工作流程 所以這篇就來介紹如何設定與使用 n8n-mcp-server 來讓 LLM 幫忙操控 N8N 在 GitHub 上有不少的 n8n-mcp-server,經過一下下的簡單搜索,我決定使用這個專案: n8n-mcp-server 原因在於說這個專案的實作提供了基本上所有需要編輯工作流程的功能,以下就來記錄安裝過程 MCP Server 設定 首先當然...

May 28, 20253 min read

[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 05 - Elmah - 02

.NET Core Logging- Elmah 02 上一篇我們提到了基本的使用方式,接下來的這一篇我們就來講講要怎麼把 Log 放到不同的儲存體上,以及如何過濾 Log Log 儲存方式 我們先來看這些 Log 倒底存在哪裡,目前共有三種儲存方式,如下: MemoryErrorLog — store errors in memory 預設為使用此方式,簡單來說就是將錯誤 Log 都存在記憶體裡,所以只要應用程式一重新啟動,Log 就沒了;但是也是最方便的方式,只是要注意如果 Log 太...

Oct 20, 20182 min read
[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 05 - Elmah - 02

[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 04 - Elmah - 01

.NET Core Logging- Elmah 01 Elmah 是我最一開始使用的 Log 工具,基本上它的功能就是將應用程式所有發生的錯誤記錄下來,不需要改變程式架構,而且又有介面可以觀看,十分的方便;它從 WebForm 時代就有了,到了 MVC 也是運作的很好,那這邊就來介紹一下 Elmah 要如何在 ASP.NET Core 中使用 (.NET Core 也可使用)。 不過很可惜的,目前並沒有釋出官方的 Elmah for .NET Core,不過有一個新專案: ElmahCore...

Oct 19, 20181 min read
[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 04 - Elmah - 01

[IT 鐵人賽] Azure Data Service - Day 04 - Cognitive Service - 辨識 - Video Indexer

Azure Data Service - Day 04 - Cognitive Service - Vision - Video Indexer 前面幾篇都是介紹靜態影像的辨識與分析,那這篇就來到針對影片來做處理。 Cognitive Service 針對影片辨識的部分提供了:Video Indexer 它整合了許多功能,在這邊列出一些比較重要的功能: 語系偵測 可以自動偵測出這個影片是屬於哪個語系,目前支援: English, Spanish, French, German, Italia...

Oct 19, 20181 min read
[IT 鐵人賽] Azure Data Service - Day 04 - Cognitive Service - 辨識 - Video Indexer

BrainBurst, HeadFirst

45 posts

學習學到老,撞牆撞到腦. A lifelong quest—with forehead dents.