<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Github | Chia-An Lee</title><link>https://calee0219.github.io/tag/github/</link><atom:link href="https://calee0219.github.io/tag/github/index.xml" rel="self" type="application/rss+xml"/><description>Github</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><copyright>©</copyright><lastBuildDate>Mon, 09 Aug 2021 07:48:37 +0800</lastBuildDate><image><url>https://calee0219.github.io/media/icon_hu_da05098ef60dc2e7.png</url><title>Github</title><link>https://calee0219.github.io/tag/github/</link></image><item><title>GitHub 入門</title><link>https://calee0219.github.io/blog/github_intro/</link><pubDate>Mon, 09 Aug 2021 07:48:37 +0800</pubDate><guid>https://calee0219.github.io/blog/github_intro/</guid><description>&lt;h2 id="github-註冊"&gt;GitHub 註冊&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;首先到
&lt;/li&gt;
&lt;li&gt;點下網站上的Sign Up&lt;/li&gt;
&lt;li&gt;依網站要求輸入相關資料&lt;/li&gt;
&lt;li&gt;帳號開通後即完成！！&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="安裝git"&gt;安裝Git&lt;/h2&gt;
&lt;h3 id="windows"&gt;Windows&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;首先到
下載Git for windows安裝檔&lt;/li&gt;
&lt;li&gt;執行安裝檔安裝Git&lt;/li&gt;
&lt;li&gt;安裝完後, 電腦上應該會出現一個&lt;strong&gt;Git Bash&lt;/strong&gt;程式, 按下並執行Git Bash&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="linux"&gt;Linux&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install git // debian or ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum install git-core //fedora
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dnf install git // fedora 24 or upper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="mac"&gt;MAC&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="git基本觀念"&gt;Git基本觀念&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以看
的第一章了解git版本控制基本觀念&lt;/li&gt;
&lt;li&gt;git 三類
&lt;ul&gt;
&lt;li&gt;tracked (被追蹤的檔案，有做過 git 版控的檔案皆為此類)&lt;/li&gt;
&lt;li&gt;ignored (忽略的檔案，此類檔案不會被追蹤，須寫在 .gitignore 裡)&lt;/li&gt;
&lt;li&gt;untracked (未被追蹤的，剛新增的檔案皆為此類)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;git 三狀態
&lt;ul&gt;
&lt;li&gt;working directory (工作狀態，未做任何版本控制，此狀態內修改的code都是不可逆的)&lt;/li&gt;
&lt;li&gt;staging area (版控站存區，working directory 的 code 皆可被這裡的 code 複寫回原來的版本，但若此區的檔案被更新，則無法回復之前在 staging area 的 code)&lt;/li&gt;
&lt;li&gt;repository (進入版控的 code，此區的 code 有許多節點，修改過的 code 可回復到此區的任意節點)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;git / GitHub 術語
&lt;ul&gt;
&lt;li&gt;repo: repository 縮寫&lt;/li&gt;
&lt;li&gt;merge: 兩份同一個專案的 code 互相衝突時，檢查檔案是否有衝突的地方，若無，合併檔案，法之修改衝突的部分後合併檔案&lt;/li&gt;
&lt;li&gt;pull request (PR): 要求他人將你的更新 merge 到他的 repo 中&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="git-基礎指令"&gt;git 基礎指令&lt;/h2&gt;
&lt;p&gt;:::info
指令中有[]者表示括號中內容依使用者的需求自填，&amp;quot;[&amp;quot; ＆ &amp;ldquo;]&amp;ldquo;不須下在指令中
:::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;git init&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新創一個git repository&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git status&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看目前專案目錄狀態&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git branch&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看目前所有分支(有打星號的分支)&lt;/li&gt;
&lt;li&gt;創建新分支：&lt;code&gt;git branch [newBranchName]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;切換分支：&lt;code&gt;git checkout [branchName]&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git add [fileName]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;將檔案加到暫存區stage, 在stage的檔案就是準備要commit的檔案&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git commit&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;將所有已經加到stage的檔案提交到repository, 需要輸入提交訊息來紀錄這次提交&lt;/li&gt;
&lt;li&gt;通常會搭配 &lt;code&gt;-m&lt;/code&gt; 參數使用, 此參數可以讓你在下commit指令時同時順便輸入簡易的提交訊息&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git merge&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;合併兩個分支&lt;/li&gt;
&lt;li&gt;指令：&lt;code&gt;git branch [firstBranch] [secondBranch]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;上述指令會將secondBranch合併到firstBranch中&lt;/li&gt;
&lt;li&gt;合併完且不再需要的branch可以下&lt;code&gt;git branch -d [branchName]&lt;/code&gt;刪除&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git log&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看歷次提交的相關資訊&lt;/li&gt;
&lt;li&gt;若只要看線圖可以加上 &lt;code&gt;--graph&lt;/code&gt; &lt;code&gt;--oneline&lt;/code&gt; &lt;code&gt;--decorate&lt;/code&gt; &lt;code&gt;--all&lt;/code&gt;四個參數&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git push&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;將本地分支提交到遠端伺服器&lt;/li&gt;
&lt;li&gt;若遠端分支有更新，push會失敗，必須先pull遠端更新才能push本地更新&lt;/li&gt;
&lt;li&gt;完整指令：&lt;code&gt;git push [remoteRepositoryName] [localBranchName]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;若你的repository是從gitHub clone下來的，reomteRepositoryName會是origin&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git pull&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把遠端更新下載回本地端並與本地端分支合併&lt;/li&gt;
&lt;li&gt;類似把 git fetch 及 git merge 一起做的指令&lt;/li&gt;
&lt;li&gt;完整指令：&lt;code&gt;git pull [remoteRepositoryName] [localBranchName]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可以加入&lt;code&gt;--rebase&lt;/code&gt;參數讓線圖更漂亮&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git &amp;ndash;help&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看git幫助訊息&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="專案協作"&gt;專案協作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;git clone
&lt;ul&gt;
&lt;li&gt;複製git server 的 repository 到 local 端&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="step-by-step"&gt;Step by step&lt;/h2&gt;
&lt;p&gt;對於 moztw 的專案，如果你不想要知道他們到底是幹什麼的，只要可以讓你可以做就好的話&amp;hellip;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;到 moztw 的
，右上方按 fock ，複製到自己的 GitHub 上
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://i.imgur.com/um4W72c.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;到自己 fork 的 repo ，按右上方 Clone or download，將看到的網址複製下來
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://i.imgur.com/ntuZBun.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;到你的電腦，下 &lt;code&gt;git clone [剛剛的網址]&lt;/code&gt; 的指令，等待電腦下載完成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;到 moztw issue 尋找你想要改的 bug 或新增的 feature
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://i.imgur.com/1la2x1y.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;點入 issue 後可以查看詳細內容
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://i.imgur.com/CCK3SjL.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;針對你要貢獻的 issue，編輯你需要修改的檔案，在編輯前，記得先讀過一些 coding 的
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若想看修改的結果，可以 npm 的方式運行，運行方式
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;編輯完成後，下 &lt;code&gt;git status&lt;/code&gt; 可以看到你所修改的檔案變成 &lt;em&gt;modified&lt;/em&gt; (紅色的) 狀態，若是新檔案則是 &lt;em&gt;untracked files&lt;/em&gt; 狀態&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若已經確認某檔案將不再修改，可以下 &lt;code&gt;git add [filePath]&lt;/code&gt; 將檔案放到暫存區 (staging area) 準備commit&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;add完所有需要提交的檔案後，就可以下 &lt;code&gt;git commit -m &amp;quot;Fix issue [issue No.], [yourCommitMessage]&amp;quot;&lt;/code&gt; 將檔案提交到repository了，記得要把 issue No. 寫在你的 commit 裡，pull request 時管理員才能知道你修的是哪個 issue&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;確認所有檔案都以完成提交，下 &lt;code&gt;git push origin master&lt;/code&gt; 上傳到你 GitHub 上的 repo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;確認你 GutHub repo 上的檔案是正確的後，按左上方的 new pull request 完成你的 pull request
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://i.imgur.com/qKh2Hwj.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;坐等你的 pull request 被 merge 或被退回吧~~~&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="如何運行-moztw"&gt;如何運行 moztw&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;安裝
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;windows 下安裝
即可&lt;/li&gt;
&lt;li&gt;Ubuntu / Debian 下，在 terminal 下 &lt;code&gt;sudo apt install nodejs npm&lt;/code&gt; 指令&lt;/li&gt;
&lt;li&gt;Fedora 下，在 terminal 下 &lt;code&gt;sudo dnf install nodejs npm&lt;/code&gt; 指令&lt;/li&gt;
&lt;li&gt;Mac 下， 在 terminal 下 &lt;code&gt;brew install node&lt;/code&gt; 指令&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用 terminal (linux/mac) 或 cmd (windows) 到你 moztw 所在的資料夾下&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;下 &lt;code&gt;npm install&lt;/code&gt; 安專所需的套件，然後下 &lt;code&gt;npm start&lt;/code&gt; 運行網頁&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在瀏覽器裡打開 &lt;code&gt;localhost:3000&lt;/code&gt; 即可看到你下載下來的網頁，之後對資料夾內檔案做修改，網頁都會自動更新&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="附錄"&gt;附錄&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>