現代化 Web 開發技術學習分享

0%

有時候我們會遇到需臨時修改它分支的狀況,這邊的臨時代表正在開發的項目並不是它分支的內容,比如說 master 分支需做緊急修改,但我們目前正在跑 feature 分支的進度,這時你可能會將 feature 尚未提交成 commit 的修改內容複製到一個空白文件上,以確保修改內容不會不見,最後當 master 分支修改完成時,再將修改內容貼回到 feature 上,這確實也是個辦法,但其實不用這麼麻煩,Git 本身就有專門處理此情況的指令,名為 stash,可將當下分支的修改內容暫存起來,日後有需要再將它取出即可。
閱讀全文 »

跑過前面的文章大概就知道 Git 整個的處理流程了,這次來補充介紹 cherry-pick 與 revert 指令,你可以把 cherry-pick 看做 rebase 底層使用的指令,事實上,rebase 之所以能夠依序的整理提交,過程就是使用 cherry-pick 來執行,而 revert 就更簡單了,以往我們會使用 reset 或 rebase 來重置提交,但僅限於尚未推至遠端的提交,如果重置到了遠端的提交,此時肯定會發生衝突,revert 主要就是被用來解決此問題,以不修改原始提交為原則,新增一個相反的提交以抵銷之前的修改。
閱讀全文 »

之前我們已經介紹過如何使用 merge 合併分支,這次來介紹更為進階的 rebase 方法合併分支。一般的 merge 方法就只是單純的將兩個分支進行合併,而 rebase 方法可以在不額外生成新 commit 的狀況下進行合併,達到精簡化的目的,且還提供了互動模式,針對時不時 commit 的人特別有用,能夠將零碎的 commit 紀錄依造自己需求做修改,以保證最後分享給夥伴的內容是有條理的。此篇將介紹如何使用 rebase 合併分支,過程也會提到衝突的解決辦法,最後說明何謂 rebase 互動模式。
閱讀全文 »

在我們使用某些函式庫或框架進行開發時,途中可能會遇到某些無法理解的內部錯誤,這時最直接的方法就是到官方 GitHub 中的 releases 頁面查找是否有已釋出的修復版本並進行更新;這邊你所看到的版本號其實是由 Git 為特定版本進行標記所形成的標籤,標籤就如同分支一般的存在,但本質上還是有些差異,該如何正確使用標籤標記特定版本以及標籤與分支何謂本質上的差別,本篇都會講到。
閱讀全文 »

目前我們已經學會如何提交、切換、還原與重製版本了,現在只差比對了;身為版控的主流,Git 本身就已擁有強大的版本比對功能,在我們之前的分支合併衝突文章中,Git 之所以能夠告訴我們在何處發生了衝突,就是因為在內部運用了版本比對功能,事實上,我們也可以自己進行版本比對,這樣在合併分支時就不會造成所謂的衝突,除此之外,當你今天想要了解特定版本之間的差異性,也可以透過版本比對功能一目了然,省去了大部分時間。
閱讀全文 »

在之前我們有提到 Git 主要被使用在多人協作開發,每個人各自完成屬於自己的工作,最後透過合併即可完成應用,但想的簡單,實作起來卻有些困難,過程中難免會有意外發生,比如說 A 同事與 B 同事先前在初始檔案各開了一個分支,但 A 同事發現這一份檔案存在 Bug,於是做了修復的動作,而 B 同事正好也發現了這一個 Bug 也做了修復,此時如果進行合併,就會造成所謂的合併衝突,此狀況不只會發生在本地分支,遠端分支也同樣會發生,該如何解決此類的衝突,也就是本篇的主題。
閱讀全文 »

接下來進入重頭戲的部分,那就是版控系統絕對必備的檔案還原功能,前面我們有提到如何切換數據庫版本以做檢查,但你以為只有檢查嗎?它還可以還原阿!假設你今天開發應用時玩壞了某個檔案,透過簡單指令即可將檔案回復成未更動狀態,你說神不神奇?又或者是你發現了一個 Bug,為了修復這個 Bug,想了想還是把剛才提交的 commit 給拆掉重做比較快,這也同樣沒問題,只要你的本地數據庫沒有被刪掉,你想怎麼切、怎麼換、怎麼還原,通通不是問題。
閱讀全文 »

本地數據庫的操作已經介紹的差不多了,這次來講如何將本地數據庫推至遠端數據庫,這其實也是整個 Git 流程最重要的步驟,當我們成功將本地專案推至像是 GitHub 或 Bitbucket 等平台時,也就代表我們已經可以異地操作這一個專案了,你是否曾遇到過開發到一半的專案需要到另外一台電腦繼續操作的情況?這時你可能會使用像是 USB 等儲存裝置,但你不覺得這樣效率很差嗎?何況如果你忘記帶 USB 呢?只要你的專案已經存在遠端數據庫,且當前操作的電腦有安裝 Git,透過簡單指令即可將專案同步回本地。
閱讀全文 »

上次介紹了 Git 基本的工作流程,這一次來介紹 Git 另一個強大的功能也就是分支 (branch) 的部分。你如果曾上網搜尋 Git 的圖片,你會發現別人的 Git 怎看起來都好複雜,一堆各種顏色的線,這些線就是屬於分支,通常在多人開發時,我們不太可能像之前所操作的,只在 master 這一條主線進行開發,我們會開一條分支專門處理專案的特定部分,最後當我們要做實際呈現時,才會將此分支合併到主線上面,而合併分支在 Git 又有所謂的快轉機制,即 fast-forward,該如何正確的建立分支與合併分支,本篇都會講到。
閱讀全文 »

Git 是一個分散式的版本控制系統,可針對專案的不同版本進行操作。當初在學 Git 時是直接買書回來看,大概知道什麼時候該打什麼指令,但我還是認為自己的基礎不夠扎實,還不到業界的標準,如果你是應徵軟體相關的工作,這肯定是必備技能。此系列文章主要紀錄在各種情境下,該如何靈活使用 Git 管控我們的專案版本,到後半段的文章也會提及如何將專案部屬至遠端的 Git 伺服器,如 GitHub、Bitbucket 等,最後會以常見的 Work Flow,如 GitHub Fow 收尾,加深自己對 Git 的印象。
閱讀全文 »