git



[git]如何快速清理已經合並(merged)的分支(branch) - local及remote

[git]如何快速清理已經合並(merged)的分支(branch) - local及remote.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

分支(branch)可以説是git的殺手鐧功能,透過建立分支就像使用多重影分身之術一樣,可能同時進行不同分支的開發,最後可以透過合并(merge)把所有的修改整合在一起。

不過開啓大量分支有一個缺點,那就是當合并成功之後,怎麽清理不需要的分支

這篇就來看看怎麽快速清理掉這些無用的"分身"。


[faq]Windows 1803之後git for windows無法透過Start-SshAgent啓用ssh agent - 需要一直輸入passphrase的問題

[faq]Windows 1803之後git for windows無法透過Start-SshAgent啓用ssh agent - 需要一直輸入passphrase的問題.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

還記得之前有一篇介紹git for windows最新版本的Credential Manager有問題導致沒有辦法和遠端repo溝通(Windows安裝 git 2.19.1 之後做git clone-pull-push出現)。透過那一篇,理論上和遠端repo驗證就沒什麽問題了。

不過我自己在使用的時候發現,不知道爲什麽Azure DevOps的repo雖然跳出來輸入的是正確的帳號和密碼,但是git就是出現驗證失敗(github就不會)。

好吧,那換一種驗證方式,改成使用ssh。

不過用ssh又遇到另外一個問題,每一次和遠端溝通都要輸入passphrase超級麻煩,這個時候突然想起以前寫過(何謂ssh,在Windows下如何使用ssh,如何在Windows透過ssh下載和上傳程式到github)透過ssh agent不用一直輸入密碼。

興奮的打開那一篇,學著裡面輸入Start-SshAgent,結果出現了error:1058

什麽鬼,難道不能夠讓我開開心心的pull/push然後不輸入密碼嗎?

這篇將來介紹到底在Windows 1803之後做了什麽導致ssh agent啓動不起來。


[faq]Windows安裝 git 2.19.1 之後做git clone/pull/push出現NullReferenceException錯誤的問題解決方式

[faq]Windows安裝 git之後做git push出現NullReferenceException錯誤的問題解決方式.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

最近在一臺乾净的電腦裡面重新安裝了開發環境,git作爲版控工具肯定是首選要裝的工具之一。

環境准備好了之後,當然就是要clone專案下來開始開發,可是竟然出現了fatal: NulIReferenceException encountered. Object reference not set to an instance of an object.

太詭異了吧,用了git這麽多年還沒有遇到過這種問題,到底要怎麽處理呢?


[git]repo、branch和tag取名建議和注意事項 - 怎麼取名比較不會有問題

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

最近在和同事協同開發的時候,發生了一件事情:

由於我們還沒啟用CD(自動部署)但是更新測試機器又不一定是同一個人,為了好管控目前程式碼和目前測試機器上面的版本,我們使用了一個標籤叫做TestServer來記錄。

不過當我同事更新的時候,他使用了testserver作為標籤,結果我這邊發生了雖然local只有一個tagtestserver,但是在remote上面其實有兩個標籤:TestServertestserver

為什麼會發生這個事情呢?如果不處理,未來在看的時候非常混亂,這讓我想起來一直想要寫的一篇文章,為git repo、tag和branch取名的時候應該要注意什麼比較不會有問題,因此兩篇一起寫,算是不好好naming會帶來什麼問題的use case範例。

搜索關鍵字:naming guidance for git repo, tag and branch.


IIS 無法取得font - 錯誤 Failed to decode downloaded font - 了解MIME設定和gitattributes錯誤導致的問題

IIS 無法取得font - 錯誤 Failed to decode downloaded font - 了解MIME設定和gitattributes錯誤導致的問題
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

最近在案子裡面遇到網站有使用到Fontello的元件。網站的靜態切板沒什麼問題但是掛到了iis之後,發現icon的部分都出不來,然後chrome F12的developer工具出現了錯誤訊息:

Failed to decode downloaded font

Failed to decode downloaded font

OTS parsing error: incorrect file size in WOFF header

但是看network裡面fontello的font又有load成功   
但是看network裡面fontello的font又有load成功

這不是我第一次使用這種font相關的套件,為什麼以前沒有發生呢?這篇將會對於發生的原因和解決方式做個總結。

關鍵字:fontello出不來、fontawesome出不來、無法使用font套件

[回顧][課程]20170704-20170705-電子內容管理 使用Git 與 github

[回顧][課程]20170704-20170705-電子內容管理 使用Git 與 github
圖片來源:https://pixabay.com/en/discussion-session-white-male-1874788/

在2017/07/04和2017/07/05這兩天(總共6個小時)很榮幸有機會在逢甲給非資訊系的學員介紹版控,並且如何使用版控來管理他們日常文件。

這次的課程其實非常特別,因為有別于以往我習慣的教學方式(多說明概念和原因多過於實際操作,因為實際操作很容易找到資料,但是背後原理、概念則不容易找到),這次反而是不需要了解太多背後原理,會用就好,先使用有興趣再來了解 原理。

一樣,我喜歡請大家給我一些回饋意見因此有請學員幫我填寫問卷,這篇會針對這次課程的一個總結。

前情提要

活動相關資訊
簡報主要內容

讓非資訊人員了解版控,並且以此課程延伸一些不同地方的興趣。其中使用TortoiseGit介紹幾本git操作,搭配visual studio code教學編輯markdown和編輯html檔案並且透過visual studio code直接做git commit和比對等相關動作

因此希望上完這個課程,學員可能因此對git更有興趣,或者對基礎web更有興趣(因為在做線上履歷會自己調整)或者對如何搭配專案管理(github issue tracking)更有興趣,之後在往下專研。

相關投影片

該怎麼開專案的資料夾結構?每個專案應該要有的資料夾結構和檔案

該怎麼開專案的資料夾結構?
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

每當需要建立一個新的專案的時候,最長遇到的問題就是,我的 資料夾應該怎麼開有哪些檔案是必須要存在

對於初學者來說,可能會覺得這有什麼好難的,我就visual studio開起來,然後建立一個專案就可以開始工作了,範例不都是這樣開的嗎?

這個為什麼很重要呢?假設有些必要的檔案沒有建立,除了在開發上會造成負擔(例如缺少git忽略檔案),在之後自己回來看的時候就要花很多時間去找。例如文件在哪裡?專案的變更記錄在哪裡?ci的自動化build script在哪裡?

如果每個專案的結構和內容相近的話,不僅讓找資料更加方便,也能提醒自己有些東西需要補(例如萬惡的文件XD)。

這篇將會介紹每個專案應該要有的資料夾結構和應該要有的檔案,讓未來在建立專案的時候不會忘記。

最後,在實際進入之前,和任何軟體開發一樣,這個有很重的個人喜好(personal preference)在裡面,所以可能和各位習慣不同,由我先拋磚引玉,如果有不同想法和更好建議也歡迎提出來。

關鍵字:專案結構、開專案資料夾、project strcture、特殊檔案



[回顧][活動][Study4]20170624-大家應該都要會的工具 git - 從放棄到會用

在2017/06/24的時候非常有榮幸和大家在Study4的6月場次裡面介紹了git。

我對於大家聽完的感想其實非常有興趣,因此做了一個問卷請大家幫忙填寫。

大家都那麼認真幫我做了填寫,我當然也要認真的把大家的建議納入進去 - 因此這篇我將會對我看問卷的結果和自己時候思考到的問題總結一下,作為未來修正的參考。

前情提要

活動相關資訊
Study4 6月活動
簡報主要內容
版控歷史介紹、gui和powershell操作、Visual Studio Team Service介紹、Visual Studio Code搭配呼叫
相關投影片

[git]為什麼常出現有修改但是比對不卻顯示不出差異?談談檔案斷行問題和如何達到不同平台正確一致化

用git之後,有時候遇到在檢查狀態的時候明明顯示有修改,但是實際比對的時候發現完全沒有差異

通常來說發生這種情況就是檔案的斷行跑掉了,如果沒有好好解決到時候log會常常出現修改,但是實際上並不是真的修改,未來查找log很辛苦。

在這篇將會對於如何一勞永逸處理掉這個斷行問題做個說明。


[git]開始使用git - 用git操作svn repo

git作為分散式版控的一項優勢是可以在offline的情況下查到log,並且能夠隨時隨地commit;這個對於當中央repo在公司內部的時候會更加有感(因為通常內部都要透過vpn,就有可能導致速度慢,甚至有些vnp還會切斷你的外網, 沒有google要怎麼寫code XD)

很不幸的,如果你今天被要求使用svn或者tfs,你就沒有辦法像git一樣在無連線狀態下查log。

但是別絕望,git其實可以透過一個Bridge來和svn溝通,從外部來看,你好像還是使用svn,但是其實你實際上使用git。所以git的那些優點(local有一個版本,因此可以local commit,快速切branch等)完全可以使用。

這是一個很好開始嘗試git的方式。

題外話,我當初接觸git就是為了他的local功能,因為實在太好用了,最後慢慢就希望全部換成git。

昨天有幸為 Study4的6月場次介紹git,其中有學員有特別提到關於git和svn溝通的部分, 因此把當初所做的事情作了一些整理。如果有任何地方看不懂或者有缺或者漏的地方,在留言給我。


[git]重新命名檔案的方式和如何在log檢查到改檔名前的歷史記錄

how to properly rename in git and show the log of previous rename

當持續在改檔案內容,容易發生當初為這個檔案取的名字已經不適合描述目前內容的情況,所以會對檔案名稱做修改。

最好的例子就是重構,當重構的時候很容易發生class名稱變換,這個時候會一起調整class的檔案檔名避免未來不好找。

不過當有天需要追蹤那個檔案的變更歷史的時候,會突然發現,只有 從新檔名那段開始有記錄,而舊檔名的記錄則看不到。這個對於從svn轉過來的使用者來說是無法理解的。

在這篇將會針對這個常見的問題來談到解決的方式和為什麼git會是這樣運作。

rename以前的log不見了
rename以前的log不見了

如何用config管理多個網站的ssh key和如何不用每一組輸入ssh的Pass Phrase

在上一篇(何謂ssh,在Windows下如何使用ssh,如何在Windows透過ssh下載和上傳程式到github)介紹完了如何用ssh來和github做push和pull,接下來的問題會是:那如果我有多個站台ssh要連到怎麼辦?舉例來說,假設我的bitbucket也要用ssh聯繫,要怎麼做?

另外一個問題是,每一次用ssh連線都要輸入pass phrase,上篇有介紹了ssh-agent來設定。在這篇將會在延伸ssh-agent的介紹,包括如何新增和刪除key的pass phrase,方便管理多個ssh key的pass phrase。

這篇會假設已經有用上篇的方式建立了一個ssh key給github用,而這篇將會在建立一個ssh key給bitbucket用。


何謂ssh?在Windows下如何使用ssh?如何在Windows透過ssh下載和上傳程式到github?

對於一個完全沒有使用過Linux系統的人,要了解如何使用ssh其實是有一些門檻。不過隨著一些工具的出現,Windows使用者會使用到一些Linux的工具。最明顯莫過於git的版控系統。

git非常的好用,不過由於它是由Linux創始人所設計開發出來,因此裡面有一些工具是Linux天天在使用。而ssh就是其中一個工具。

這篇文章將會用我自己所理解的方式來說明ssh,和如何使用ssh來和github溝通。

更新記錄

  1. 2018/11/22 - [faq]Windows 1803之後git for windows無法透過Start-SshAgent啓用ssh agent - 需要一直輸入passphrase的問題 - Windows 1803如果呼叫有問題的話可以參考