大家好,我是貪多嚼不爛的資深菜鳥工程師,又有問題來求救了。
工作的地點最近在便用 Gitlab ,然後 Client 端使用的是 TortoiseGit ,但是因為整個流程尚未完成,所以目前在程式上線部份只能依照原本使用 SVN 的方式,將程式下載下來,然後再把程式拷貝出來丟到目的主機上。
問題來了,感覺上 TortoiseGit 的操作方式跟 TortoiseSVN 不太一樣,再加上接收到的操作步驟是用下指令的方式,感覺沒有完全用到 TortoiseGit 圖形界面的好處,所以想請教,可以跟 TortoiseSVN 一樣將 SVN 上的檔案同步下來?另外因為之前用 SVN 時都是利用上版清單去各目錄核對檔案並拷貝出來放至目的主機上,那麼 TortoiseGit 也是一樣做法?還是可以產生差異檔包,然後整包丟到目的主機上就好了?
謝謝!
純好奇,我工作的地方算是甲方,有必要需要建置 CICD 的環境嗎?因為許多系統的開發全都是在廠商公司,基本上程式來這邊就是要上線了,似乎並不會用到一些 CICD 的功能。
問題來了,感覺上 TortoiseGit 的操作方式跟 TortoiseSVN 不太一樣,再加上接收到的操作步驟是用下指令的方式,感覺沒有完全用到 TortoiseGit 圖形界面的好處,所以想請教,可以跟 TortoiseSVN 一樣將 SVN 上的檔案同步下來?
可能要先學習Git怎麼使用,SVN跟Git還是有一些差別的
而且從你的用語感覺你可能不是太了解版本控制的一些觀念
另外TortoiseGit只是Git的client端GUI工具
本質上還是在背後下指令,如果公司有人可以給你指令
讓你切換到需要上版的分支或提交當然用指令比較好
另外因為之前用 SVN 時都是利用上版清單去各目錄核對檔案並拷貝出來放至目的主機上,那麼 TortoiseGit 也是一樣做法?還是可以產生差異檔包,然後整包丟到目的主機上就好了?
可以產生差異檔案包,方法可以參考這裡
但如果需要上系統的主機可以安裝Git,而且有辦法連線到你們的gitlab
那我會建議在主機上安裝git後,直接用指令的方式把新版本的程式碼直接更新到主機上我覺的比較省事(當然過程中出現衝突或其他問題就會導致服務中斷,這時候CI/CD就有好處了)
我工作的地方算是甲方,有必要需要建置 CICD 的環境嗎?因為許多系統的開發全都是在廠商公司,基本上程式來這邊就是要上線了,似乎並不會用到一些 CICD 的功能。
內部開發的系統還是可以使用CI/CD
看看建置的成本與效益是否相符再判斷要不要使用吧
或是單純為了退版機制去做也可以,看業務性質
謝謝回覆,其實若是用 DevOps 來區分,我勉強算是 Ops 這一邊的人,所以對於程式的版本控制真的沒有那麼熟悉。
目前這邊程式上線的流程是:程式拷貝進測試機測試 - 成功將程式放入 SVN 主機 - OP (我算是其中一員) 用 TortoiseSVN 下載回 local 端 - 對照上版清單將 local 端的程式放進目的主機。
若是想要用 TortoiseGit ,有機會可以簡單完成以上的步驟嗎?先不考慮差異包,因為其實目前似乎只是想拿 TortoiseGit 來當 TortoiseSVN 使用,自己還沒開始研究,只是先偷懶上來問一下,雖然指令的操作也難不倒我。
其實在版控不太會用「下載」這類的概念
比較像是在各個不同的版本間切換
無論是SVN還是Git都一樣
所以我才猜你不曉得版控的運作方式
但我們先不討論這個問題
針對你的描述內容
我猜測你們原先的流程
應該就是每次有新的版本要上線時
把廠商提供的程式碼放到有版控的資料夾中
之後就直接commit一個新的版本
這時所有變動就會更新到版控主機
然後到你的「local端」(我猜可能是這個local端是不同電腦,隔離區之類的)
執行update(應該就是你理解的「下載」)之後再透過查看diff(也就是你說的「上版清單」)去把檔案一支一支的用ftp或其他方式更新上去
如果現在的Git也是這個流程
那對你來說Git與SVN不會有任何區別
就只是GUI軟體不一樣,然後update變成pull而已
可是你有提到現在在「local端」是用指令的方式下載(實際上是切換)得到需要的程式
所以我覺的在推上版控主機時 可能有利用到branch或tag之類的機制
所以沒辦法在TortoiseGit純粹用「pull」功能取得你需要的版本
只能用別人給的指令的方式執行
假設以上的猜測都是對的
那現在就只需要下Git指令就行
所以不用去思考怎麼使用TortoiseGit了(甚至可以解除安裝了)
如果真的要GUI
那就要先弄懂版控
再弄懂每個指令是什麼意思
這樣才有辦法每次拿到指令後
在腦中自動翻譯成TortoiseGit的操作
不過這樣說不定也沒有指令快
若是想要用 TortoiseGit ,有機會可以簡單完成以上的步驟嗎?
以目前我接收到的資訊與猜測,「用 TortoiseGit」的話大概沒辦法
簡化的流程的方法之一就是我答案中的,在目標主機上直接下Git指令,這樣可以少掉對照上版清單將 local 端的程式放進目的主機
的這個動作
但如果你只是想要知道拿到指令後怎麼操作TortoiseGit
你得要把指令給我們看
我們才有可能告訴你TortoiseGit上怎麼操作
另外最好連log graph都給我們看
查看log的操作方式:
專案根目錄右鍵 > TortoiseGit > show log...
操作方式的官網說明
(左下角的All Branch需要勾起來)
不好意思,我沒有用正確的用字來描述,你講得大概都對。
有上線的程式有人用小烏龜 commit 進版控主機
OP在隔離區用小烏龜進行 update
再利用廠商提供的上線清單來比對程式,並將程式拷貝(上傳)至相對應的主機的對應位置。
所以,我的理解,改成 Git 的話,update 改成 pull ,那麼上述的流程就還是一樣,就有最新的程式可以拷貝到相對應的主機的對應位置,這樣講應該沒錯吧?
因為拿到的操作流程感覺寫得很複雜,所以心想是否能有如 SVN 一樣簡單的方式,若是後續 CD 部份建置設定完成,可能就不需要了。
不好意思,不是程式人員,所以有些用字不是那麼精準,還要麻煩您去理解我的意思。
再次感謝!
關於 TortoiseGit 的操作求救
若是想要用 TortoiseGit ,有機會可以簡單完成以上的步驟嗎?先不考慮差異包,因為其實目前似乎只是想拿 TortoiseGit 來當 TortoiseSVN 使用,自己還沒開始研究,只是先偷懶上來問一下,雖然指令的操作也難不倒我。