|
星球嘉賓AgnesJ給大家?guī)淼囊粋€解決方案:利用git實現(xiàn)對PowerBI文件的版本控制。 本文技術(shù)性較強,如果你正好也有這個困擾請慢慢欣賞;如果暫時用不上,也可以先存著,知道有這么個技術(shù),有需要了再翻回來看。 利用git實現(xiàn)對Power BI文件的版本控制 作者:AgnesJ 在開始介紹git的安裝之前,我想先和大家聊一下“為什么我們要關(guān)心版本控制?”對于任何開發(fā)人員,無論是小白還是資深,版本控制都是必不可少的。版本控制可以讓我們跟蹤源文件的更改。通過跟蹤更改,開發(fā)人員可以快速識別何時發(fā)生了更改,發(fā)生了什么更改。使用git,開發(fā)人員可以“區(qū)分”舊文件與新文件的區(qū)別,了解到發(fā)生了什么更改。 同時,Git是一個分布式版本控制系統(tǒng)。這意味著它沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫,這樣,你在工作的時候,就不需要聯(lián)網(wǎng)去讀取文件啦,因為版本庫就在你自己的電腦上。這也提高了它的安全性。 但是目前的問題是:Power BI Desktop創(chuàng)建的PBIX或PBIT是.zip二進制文件。 這意味著,使用版本控制的系統(tǒng),我們無法“區(qū)別”不同的文件,也無法跟蹤更改。比如當你將[價格]度量值更改為[價格-不含增值稅]時,我們沒有辦法通過git看到這個更改。此外,由于我們無法“進行差異化”,那么如果有一個以上的開發(fā)人員來從事一個項目時,就沒有辦法合并你們所做的更改。這也就導致了限制了Power BI項目的開發(fā)人員數(shù)量。 然而,雖然有上述的這些限制,我們還是可以通過對文件進行“注釋”的方法來實現(xiàn)對新舊文件的區(qū)分。 所以,在這里我想和大家(像我一樣的GitHub新手)分享一下,如何一步一步創(chuàng)建GitHub倉庫,并實現(xiàn)對.pbix文件的版本控制。 重要概念:(這里引用廖雪峰老師的話) 什么是版本庫? 版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。 什么是分支? 分支就是科幻電影里面的平行宇宙,當你正在電腦前努力學習dax的時候,另一個你正在另一個平行宇宙里努力學習git。 如果兩個平行宇宙互不干擾,那對現(xiàn)在的你也沒啥影響。不過,在某個時間點,兩個平行宇宙合并了,結(jié)果,你既學會了dax又學會了git! Git的分支是與眾不同的,無論創(chuàng)建、切換和刪除分支,Git在1秒鐘之內(nèi)就能完成。 了解完重要概念,那就開始吧。 首先,下載安裝git 進入官網(wǎng)下載 https:/// 點擊next直至安裝完成。 接下來,注冊一個GitHub賬戶。 注冊好賬戶之后,登陸GitHub,點擊創(chuàng)建一個新的倉庫。 注:可以創(chuàng)建一個私密的倉庫,這樣就可以保證數(shù)據(jù)的安全。 至此,用來存儲和管理我的.pbix文件的倉庫創(chuàng)建成功。接下來,需要在本地創(chuàng)建一個倉庫,并把本地倉庫關(guān)聯(lián)到遠程倉庫。 Git的倉庫你可以建在你電腦的任何目錄下(最好不要包含有中文目錄)。在這里,我先新建一個文件夾 “GitTest”,然后打開這個文件夾,在空白處鼠標右擊:Git bash here: 連接遠程倉庫,有這幾種做法: 下面我打算在 GitTest 下面創(chuàng)建本地庫,使用第二種方法: 在git面板里輸入命令行:
這里提示,第一條 commit 已經(jīng)添加并成功推送至遠程倉庫的當前分支 “master” 中。 之后,我們就可以往倉庫里添加文件啦。 添加文件的時候,可以直接把你要管理的.pbix文件拖至本地倉庫中。
然后打開git bash,輸入 git status 查看倉庫的狀態(tài):這里提示我們新添加了一個名為 “FFT KPI.pbix”文件。
接下來,我們把這個pbix文件推送到遠程倉庫中去,這個步驟使用三個命令行實現(xiàn):
打開你的遠程倉庫,就可以看到你成功推送的文件啦:
在這里,如果你遇到了文件無法推送的情況,例如,你在控制面板收到了這樣的消息:
是因為想要推送的文件超過了最大文件大小的限制,這時,會提示你需要使用git lfs插件來解決。 什么是Git LFS? Git LFS(Large File Storage) 是 Github 開發(fā)的一個 Git 的擴展,用于實現(xiàn) Git 對大文件的支持。簡單的說,就是如果你想傳超過100M的二進制文件到GitHub,你就要用Git LFS。 根據(jù)提示,進入 https://git-lfs.github.com/,下載安裝擴展件,依據(jù)官方頁面的指示進行操作:
在修改并保存了文件之后,先用git status查看一下狀態(tài):看到提示 FFT KPI.pbix被修改。
使用git add 添加這個修改到倉庫中,
commit,并添加一段注釋用來標明:
push到遠程倉庫里:
在遠程倉庫里查看新的版本,以及注釋:
點擊文件名,還可以繼續(xù)添加描述,我又在此處添加了 ”Data updated. 15/12/2019”。
點擊查看你所有的commit,你就可以輕松找回自己的注釋:
其實,實現(xiàn)版本控制的方法就是,通過閱讀每一個 commit 的注釋,查詢對文件進行的更改,之后,再使用git checkout,就可以找回想要的那一個版本啦。 使用git找回自己想要的文件,以及其他工具推薦首先,需要獲得你想要的那一條commit sha,(sha就類似于id,每一條commit都有自己獨特的sha)比如我現(xiàn)在想要看到我的“第一版”文件: 打開git bash后 輸入 git log,
復制sha:8cf7494dfe37c18dc0495afda3c72ea619a6eda9 或者直接在github頁面上復制: ![]() 此時,假設(shè)你有兩種想法: 第一種,你想要保留你其余的commit,只是想單獨取出這一條commit中的文件,就需要: git fetch origin xxxxxxxshaxxxxxxx
git checkout FETCH_HEAD
執(zhí)行完上述命令,再打開你的本地倉庫,你會發(fā)現(xiàn),你回到了這一條commit時的所存儲的文件狀態(tài)。 這時,你可以使用下面的命令創(chuàng)建一個新的分支,用來存儲你想要的文件版本: git checkout -b “develope”按照提示,將你取出的這一條commit推送到新的分支里,這樣你就可以單獨獲得你想要的文件了。
而且,你推送到倉庫里所有的文件都不會丟失,你只需要切換分支就可以找到其他文件。 注:如何切換分支?使用 git checkout xxxxx (xxxxx為分支的名字) 第二種,如果你不再需要這條commit之后的提交或修改,則可使用reset強制回到這條提交。 git reset --hard commit_sha 我在這里只是簡單地描述了一下我是如何利用git對pbix文件實現(xiàn)版本控制的,只是git強大功能的鳳毛麟角。 同時,如果你覺得git對你來說過于復雜或者不順手,還有其他的方式來做版本控制: 第一種,使用One drive business。 在One drive for Business中,服務(wù)器會把同名文件在不同時間的上傳自動識別為不同的版本。 可以在文件詳情中查看不同的歷史版本,并恢復(restore)某一個歷史版本。
如果你有一個office 365賬號,并且可以使用One drive for business,固然好啦,簡單好用,不需要額外安裝其他工具。這也是微軟官方建議的一種方式。 但缺點是,付費。 另外還有一個工具,做開發(fā)的朋友可能會熟悉:AzureDevOps, 以前的Team Foundation Server。 TFS通常被用來持續(xù)整合一個開發(fā)項目,所以它也整合了git的功能。可以使用git或通過Visual studio來聯(lián)結(jié)使用。和OneDrive for Business不同,TFS可以注冊賬號,免費試用。感興趣的朋友可以自己深入了解一下。在這里就不多說啦。 如果你也和我一樣,看到那么多的version就頭疼,那就趕快實踐一下版本控制吧。 老實說,上面的內(nèi)容我看了一遍頭都是暈暈的,但是,這確實為解決PowerBI版本控制的問題,提供了一個很好的思路,感謝AgnesJ的長篇分享,大家如果在實踐過程中有什么問題,可以在知識星球中向她提問。 |
|
|