<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>軟體開發知識庫 &#8211; CAPDIO</title>
	<atom:link href="https://www.capdio.com/category/programming-language/%E8%BB%9F%E9%AB%94%E9%96%8B%E7%99%BC%E7%9F%A5%E8%AD%98%E5%BA%AB/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.capdio.com</link>
	<description>遊戲開發 Studio</description>
	<lastBuildDate>Tue, 11 Nov 2025 11:08:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.capdio.com/wp-content/uploads/2024/06/cropped-capdio-favicon-white-32x32.png</url>
	<title>軟體開發知識庫 &#8211; CAPDIO</title>
	<link>https://www.capdio.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>使用 GitHub 當作小型團隊的開發中心</title>
		<link>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bd%bf%e7%94%a8-github-%e7%95%b6%e4%bd%9c%e5%b0%8f%e5%9e%8b%e5%9c%98%e9%9a%8a%e7%9a%84%e9%96%8b%e7%99%bc%e4%b8%ad%e5%bf%83/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bd%25bf%25e7%2594%25a8-github-%25e7%2595%25b6%25e4%25bd%259c%25e5%25b0%258f%25e5%259e%258b%25e5%259c%2598%25e9%259a%258a%25e7%259a%2584%25e9%2596%258b%25e7%2599%25bc%25e4%25b8%25ad%25e5%25bf%2583</link>
					<comments>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bd%bf%e7%94%a8-github-%e7%95%b6%e4%bd%9c%e5%b0%8f%e5%9e%8b%e5%9c%98%e9%9a%8a%e7%9a%84%e9%96%8b%e7%99%bc%e4%b8%ad%e5%bf%83/#respond</comments>
		
		<dc:creator><![CDATA[George]]></dc:creator>
		<pubDate>Tue, 11 Nov 2025 11:06:11 +0000</pubDate>
				<category><![CDATA[軟體開發知識庫]]></category>
		<guid isPermaLink="false">https://www.capdio.com/?p=1893</guid>

					<description><![CDATA[我們可以透過 GitHub 的私有儲存庫 (Private Repository) 與權限控管來設定符合需求的環境 確切的來說我們只要執行兩個主要步驟：1. 管理「協作者 (Collaborators)」的權限：這能精確控制誰可以「修改」程式碼2. 將儲存庫 (Repository) 設為「私有 (Private)」：這能確保非團隊人員「無法觀看」 首先我們要知道 repository(儲存庫)有分享種:Public (公開): 任何人都可以觀看、下載Private (私有): 只有您和您邀請的人才能觀看。 以下我們假設你在創建一個新的儲存褲來進行 SOP 解說 預期成效: 您的需求 解決方案 非團隊人員無法觀看 設定儲存庫為&#160;Private 非團隊人員無法修改 (已由 Private 解決) 團隊成員可以觀看 (但不能改) 邀請為 Collaborator 並給予&#160;Read&#160;權限&#8230;]]></description>
										<content:encoded><![CDATA[
<p>我們可以透過 GitHub 的<strong>私有儲存庫 (Private Repository)</strong> 與<strong>權限控管</strong>來設定符合需求的環境</p>



<p>確切的來說我們只要執行兩個主要步驟：<br><strong>1. 管理「協作者 (Collaborators)」的權限</strong>：這能精確控制誰可以「修改」程式碼<br>2. <strong>將儲存庫 (Repository) 設為「私有 (Private)」</strong>：這能確保非團隊人員「無法觀看」</p>



<p>首先我們要知道 repository(儲存庫)有分享種:<br><strong>Public (公開)</strong>: 任何人都可以觀看、下載<br><strong>Private (私有)</strong>: 只有您和您邀請的人才能觀看。</p>



<p>以下我們假設你在創建一個新的儲存褲來進行 SOP 解說</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>1. 在 GitHub 建立新儲存庫 (New Repository) 時,
在 &quot;Owner&quot; 和 &quot;Repository name&quot; 下方，您會看到 Public 和 Private 的選項
請務必選擇 Private

2. 管理團隊成員與權限
將專案設為 Private 後，預設只有您（擁有者）看得到。您需要手動將您的團隊成員加進來。
進入您的 Private 儲存庫頁面。
點選 Settings (設定)。
在左側選單中，點選 Collaborators and teams (協作者與團隊)。
點擊 Add people (新增人員) 按鈕，然後輸入您團隊成員的 GitHub 使用者名稱、Email 或全名來邀請他們。

** 有關權限的管理 **
在邀請他們時，您可以指定他們的權限，這對「控制修改」至關重要：
  Read (讀取)：
    可以：觀看、下載、複製 (Fork) 程式碼。
    不可以：推送 (Push) 任何修改。
    (適用於：需要觀看程式碼但不需要修改的專案經理、QA 人員或實習生。)

  Write (寫入)：
    可以：觀看、下載、推送 (Push) 修改。
    (適用於：您的核心開發團隊成員。)

  Admin (管理)：
    可以：包含 Write 的所有權限，外加可以修改儲存庫設定、管理協作者等。
    (適用於：專案負責人、主要管理者。)

修改後的效果:
非團隊人員 -&gt; 因為專案是 Private，他們完全看不到
需要觀看但不能改的人 -&gt; 邀請並給予 Read 權限
需要開發的人 -&gt; 邀請並給予 Write 權限

== 補充 ==
保護主要分支 (Branch Protection)
有時候，即使是擁有 Write 權限的團隊成員，我們也不希望他們「隨意」將程式碼推送到主要分支
 (例如 main 或 master)，因為這可能會弄亂專案。

您可以設定「分支保護規則 (Branch Protection Rule)」來解決這個問題:
在 Settings &gt; Branches (分支) 中, 為您的 main 分支新增一條規則。
強烈建議勾選:
Require a pull request before merging (合併前需要拉取請求)
  這會禁止所有人 (包括 Admin) 直接 Push 到 main 分支
  所有變更都必須透過 Pull Request (PR) 的流程來提交

Require approvals (需要審核)：
  設定 PR 至少需要 1 人 (或 2 人) 審核 (Review) 並「批准 (Approve)」後，才能合併到 main 分支</code></pre></div>



<p>預期成效:</p>



<figure class="wp-block-table"><div class="pcrstb-wrap"><table class="has-fixed-layout"><thead><tr><td><strong>您的需求</strong></td><td><strong>解決方案</strong></td></tr></thead><tbody><tr><td><strong>非團隊人員</strong>無法觀看</td><td>設定儲存庫為&nbsp;<strong>Private</strong></td></tr><tr><td><strong>非團隊人員</strong>無法修改</td><td>(已由 Private 解決)</td></tr><tr><td><strong>團隊成員</strong>可以觀看 (但不能改)</td><td>邀請為 Collaborator 並給予&nbsp;<strong>Read</strong>&nbsp;權限</td></tr><tr><td><strong>團隊成員</strong>可以觀看和修改</td><td>邀請為 Collaborator 並給予&nbsp;<strong>Write</strong>&nbsp;權限</td></tr><tr><td><strong>團隊成員</strong>可以修改，但要有<strong>審核</strong></td><td>使用&nbsp;<strong>Branch Protection Rule</strong>&nbsp;(強制 PR + 審核)</td></tr></tbody></table></div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bd%bf%e7%94%a8-github-%e7%95%b6%e4%bd%9c%e5%b0%8f%e5%9e%8b%e5%9c%98%e9%9a%8a%e7%9a%84%e9%96%8b%e7%99%bc%e4%b8%ad%e5%bf%83/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Github 不能用 http clone 取得專案了, 要怎麼設定用 ssh</title>
		<link>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/github-%e4%b8%8d%e8%83%bd%e7%94%a8-http-clone-%e5%8f%96%e5%be%97%e5%b0%88%e6%a1%88%e4%ba%86-%e8%a6%81%e6%80%8e%e9%ba%bc%e8%a8%ad%e5%ae%9a%e7%94%a8-ssh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=github-%25e4%25b8%258d%25e8%2583%25bd%25e7%2594%25a8-http-clone-%25e5%258f%2596%25e5%25be%2597%25e5%25b0%2588%25e6%25a1%2588%25e4%25ba%2586-%25e8%25a6%2581%25e6%2580%258e%25e9%25ba%25bc%25e8%25a8%25ad%25e5%25ae%259a%25e7%2594%25a8-ssh</link>
		
		<dc:creator><![CDATA[George]]></dc:creator>
		<pubDate>Wed, 13 Nov 2024 13:40:30 +0000</pubDate>
				<category><![CDATA[軟體開發知識庫]]></category>
		<guid isPermaLink="false">https://www.capdio.com/?p=1755</guid>

					<description><![CDATA[github 基於安全因素將 clone by http 給取消掉了!!! 那麼使用 ssh 去進行 clone 等的操作算是最原生的方法了!! 但是該怎麼進行呢？ 其實不難, 只要透過以下幾個步驟就可以達成了!! 事前準備工作1. 請先註冊好 github 帳號, 我們先架設我們的帳號叫做 Ahero2024TW2. 隨意先建立一個 repository, 我們先假設這邊叫做 AAAAProject Step 1 &#8211; create your own ssh key如何建立 ssh key, 如果你是&#8230;]]></description>
										<content:encoded><![CDATA[
<p>github 基於安全因素將 clone by http 給取消掉了!!! 那麼使用 ssh 去進行 clone 等的操作算是最原生的方法了!! 但是該怎麼進行呢？ 其實不難, 只要透過以下幾個步驟就可以達成了!!</p>



<p>事前準備工作<br>1. 請先註冊好 github 帳號, 我們先架設我們的帳號叫做 Ahero2024TW<br>2. 隨意先建立一個 repository, 我們先假設這邊叫做 AAAAProject</p>



<p><strong>Step 1 </strong>&#8211; create your own ssh key<br>如何建立 ssh key, 如果你是 linux 用戶我想這個問題應該很簡單!!<br>如果不知道怎麼進行, 我之後再補上, 或是可以參考這邊<br><a href="https://phoenixnap.com/kb/git-clone-ssh">https://phoenixnap.com/kb/git-clone-ssh</a><br>這邊我們假設你建立好的 key 組是以下兩個檔案<br><code>~/.ssh/id_github<br>~/.ssh/id_github.pub</code><br>這邊 ~/ 是在 unix 下帳號所屬的根目錄, 如果是在 windows 那你的目錄就是 C:/Users/你的帳號<br>所以 ~/.ssh 就是等於 windows 下的 C:/Users/你的帳號/.ssh</p>



<p><strong>Step 2 </strong>&#8211; 將你的公鑰放上去 github<br>你登入到 github 後就可以選擇加入了, 詳情可以參考<br><a href="https://phoenixnap.com/kb/git-clone-ssh">https://phoenixnap.com/kb/git-clone-ssh</a></p>



<p><strong>Step 3</strong> &#8211; 進行測試<br>請在 windows 的 terminal (命令提示字元, 就是類似 dos 那個畫面視窗) 輸入以下指令<br><code>git -i .ssh/id_github -T git@github.com</code><br><br>你應該會看到他顯示以下打招呼的回應, 如果是 Permission denied 那就是失敗有問題喔!<br>Hi Ahero2024TW! bala ~~ bala~~~</p>



<p><strong>Step 4</strong> &#8211; 環境設定<br>請到 ~/.ssh 目錄下建立 config 檔案, 將以下內容放入</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>Host github.com
Hostname github.com
User Ahero2024TW
IdentityFile ~/.ssh/id_github 或是(擇一輸入 unix or windows) 
IdentityFile C:/Users/你的windows帳號/.ssh/id_github
IdentitiesOnly yes</code></pre></div>



<p>存檔後即可</p>



<p><strong>Step 5</strong> &#8211; clone repository<br>接下來你可以到你想要放入專案的資料匣內進行以下指令<br>git clone git@github.com:Ahero2024TW/AAAAProject.git<br>看到 done 那麼就可發現檔案都已 clone 到 local 端了, 成功!!!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Git SCM, Git 我們知道, 但是什麼是 SCM ?</title>
		<link>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/git-scm-git-%e6%88%91%e5%80%91%e7%9f%a5%e9%81%93-%e4%bd%86%e6%98%af%e4%bb%80%e9%ba%bc%e6%98%af-scm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=git-scm-git-%25e6%2588%2591%25e5%2580%2591%25e7%259f%25a5%25e9%2581%2593-%25e4%25bd%2586%25e6%2598%25af%25e4%25bb%2580%25e9%25ba%25bc%25e6%2598%25af-scm</link>
					<comments>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/git-scm-git-%e6%88%91%e5%80%91%e7%9f%a5%e9%81%93-%e4%bd%86%e6%98%af%e4%bb%80%e9%ba%bc%e6%98%af-scm/#respond</comments>
		
		<dc:creator><![CDATA[George]]></dc:creator>
		<pubDate>Thu, 16 May 2024 14:25:35 +0000</pubDate>
				<category><![CDATA[軟體開發知識庫]]></category>
		<guid isPermaLink="false">https://www.capdio.com/?p=1621</guid>

					<description><![CDATA[什麽是SCM首先我們平時用的什麽git，svn啥的都屬於SCM。SCM（Software Configuration Management，軟件配置管理）是一種標識、組織和控制修改的技術。它應用於整個軟件生存期。 最原始古老的方法是采用手工管理版本的方式，例如當一個新版本產生時用當時的日期來命名文件夾，然後再覆制一下以後的修改在覆制的文件夾內進行，這樣上一個版本就被保存下來了，周而覆始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題，但他存在的缺點是顯而易見的：第一點如果保留結果過於頻繁，將會導致產生大量的有著重覆內容的文件夾和龐大的物理空間占用，管理起來很麻煩；如果保留舊版本的時間間隔太長，可能產生某些有用的老程序無法回溯。第二容易產生版本的混亂，如果是團隊開發軟件，這種簡單的方法更難解決問題的本質了。 幾乎所有的SCM都離不開三大基本步驟1.Get Latest Version 2.Check Out 3.修改完後Check In。以git為例，分別是 從git取數據（git clone）改動代碼將改動傳回git（git push）]]></description>
										<content:encoded><![CDATA[
<p>什麽是SCM<br>首先我們平時用的什麽git，svn啥的都屬於SCM。SCM（Software Configuration Management，軟件配置管理）是一種標識、組織和控制修改的技術。它應用於整個軟件生存期。 最原始古老的方法是采用手工管理版本的方式，例如當一個新版本產生時用當時的日期來命名文件夾，然後再覆制一下以後的修改在覆制的文件夾內進行，這樣上一個版本就被保存下來了，周而覆始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題，但他存在的缺點是顯而易見的：第一點如果保留結果過於頻繁，將會導致產生大量的有著重覆內容的文件夾和龐大的物理空間占用，管理起來很麻煩；如果保留舊版本的時間間隔太長，可能產生某些有用的老程序無法回溯。第二容易產生版本的混亂，如果是團隊開發軟件，這種簡單的方法更難解決問題的本質了。<br><br>幾乎所有的SCM都離不開三大基本步驟<br>1.Get Latest Version <br>2.Check Out <br>3.修改完後Check In。<br>以git為例，分別是<br><br>從git取數據（git clone）<br>改動代碼<br>將改動傳回git（git push）</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/git-scm-git-%e6%88%91%e5%80%91%e7%9f%a5%e9%81%93-%e4%bd%86%e6%98%af%e4%bb%80%e9%ba%bc%e6%98%af-scm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>什麼是軟體版的 LTS?</title>
		<link>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bb%80%e9%ba%bc%e6%98%af%e8%bb%9f%e9%ab%94%e7%89%88%e7%9a%84-lts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e4%25bb%2580%25e9%25ba%25bc%25e6%2598%25af%25e8%25bb%259f%25e9%25ab%2594%25e7%2589%2588%25e7%259a%2584-lts</link>
					<comments>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bb%80%e9%ba%bc%e6%98%af%e8%bb%9f%e9%ab%94%e7%89%88%e7%9a%84-lts/#respond</comments>
		
		<dc:creator><![CDATA[George]]></dc:creator>
		<pubDate>Thu, 09 May 2024 10:08:27 +0000</pubDate>
				<category><![CDATA[軟體開發知識庫]]></category>
		<guid isPermaLink="false">https://www.capdio.com/?p=1627</guid>

					<description><![CDATA[LTS 就是指長期支援 （Long-term support, 縮寫 LTS）是一種軟體的產品生命週期政策, 特別是開源軟體, 它增加了軟體開發過程及軟體版本週期的可靠度. 長期支援延長了軟體維護的週期; 它也改變了軟體更新 (修補程式) 的類型及頻率以降低風險, 費用及軟體部署的中斷時間, 同時提升了軟體的可靠性. 所以當軟體版本有寫 LTS 時, 代表他在一段很長的時間內會有更新, 問題修補&#8230;.等, 所以使用時可以不用擔心以後軟體變成孤兒的情形, 相反的如果沒有加註 LTS, 那就很有可能過一陣子你會發現軟體有問題但是都沒人出面解決!!! 這是所有軟體開發人員不樂見的!! 因此軟體相關人員在採用各種 solution 時, 都要這特別去注意這個特型喔!!!]]></description>
										<content:encoded><![CDATA[
<p>LTS 就是指長期支援 （Long-term support, 縮寫 LTS）是一種軟體的產品生命週期政策, 特別是開源軟體, 它增加了軟體開發過程及軟體版本週期的可靠度. 長期支援延長了軟體維護的週期; 它也改變了軟體更新 (修補程式) 的類型及頻率以降低風險, 費用及軟體部署的中斷時間, 同時提升了軟體的可靠性.</p>



<p>所以當軟體版本有寫 LTS 時, 代表他在一段很長的時間內會有更新, 問題修補&#8230;.等, 所以使用時可以不用擔心以後軟體變成孤兒的情形, 相反的如果沒有加註 LTS, 那就很有可能過一陣子你會發現軟體有問題但是都沒人出面解決!!! 這是所有軟體開發人員不樂見的!! 因此軟體相關人員在採用各種 solution 時, 都要這特別去注意這個特型喔!!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.capdio.com/programming-language/%e8%bb%9f%e9%ab%94%e9%96%8b%e7%99%bc%e7%9f%a5%e8%ad%98%e5%ba%ab/%e4%bb%80%e9%ba%bc%e6%98%af%e8%bb%9f%e9%ab%94%e7%89%88%e7%9a%84-lts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
