【哈佛大學】用 Python 和 JavaScript 進行 Web 開發 P33 - 33. 3-10 Git命令git checkout_branch

长安书院_
146粉絲
2 次觀看·2026年11月2日
AI 生成·可能包含錯誤
但隨著我們開始處理越來越多的專案
尤其是當我們開始處理更複雜的專案時
你可能會發現僅跟蹤一個接一個的變更就已經很困難了
它遠不如你希望的那麼強大
所以我們可以探討在一個假設的情況下可能會發生什麼
例如 當你開始對 Git 倉庫進行一些更改時
那麼讓我們假設你進行了第一次提交
你做了一些更改
你又做了一些額外的更改
而且也許你意識到你想要開始開發一個新功能
到這個你一直開發的網路應用程式
所以你開始開發一個新功能
然後你繼續開發那個新功能
但突然你意識到 你知道嗎
我之前寫的原始程式碼中有一個錯誤
而你想回去修復那個錯誤
但現在我們處於一個棘手的狀況
我們想修復這個錯誤 但我們正處於開發新功能的過程中
那麼我們該怎麼辦我們可以回到這裡來嘗試修復這個錯誤
但這項新功能會怎麼樣呢
問題在於這種結構 不斷地進行一次又一次的更改
非常線性
它只能一次又一次地進行下去
在進行專案時 往往不
會以非常線性的方式進行
你並不是一直在處理一件立即需要完成的事情
它會跟隨前面的內容
在開發多個新功能的同時 你可能會修復多個錯誤
而你希望有一種方法可以同時處理所有這些事情
可以同時輕鬆切換它們
這就是分支的作用
分支是 Git 用來處理倉庫不同部分的方式
同時
你可以想像一種情況 會更朝這個方向發展
你進行了第一次提交
你開始進行修改你進行了更多修改
當你決定想要開始開發一個新功能時 例如 而不
是持續在這個分支上一次
又一次地進行修改 說起來
我可以建立一個新的分支
我可以分出一個分支說 你知道嗎
我們來建立一個新的分支並在那裡開始開發新功能吧
然後繼續在那個新功能上工作
如果我之後發現 在這條路的後面 你知道嗎
在這次提交的時候就已經有個錯誤了
那我可以回到這個提交並創
建一個新分支 然後我繼續
修復那個錯誤 現在我有兩個不同的分支 每個分支都
可能上面有不同程式碼 其中一個我正在修復一個錯誤
另一個我正在開發一個新功能 例如
通常 每個分支都會有一個名稱
所以 主分支是你的預設分支
通常會包含最新且穩定的
程式碼版本
當你正在開發新功能時 可能會
有一個功能分支
用來開發其他功能
而且在任何時候 你的注意力只
會集中在這兩個分支中的其中一個
而你的注意力在哪裡 目前你的程式碼庫狀態就是什麼樣子
「頭」是指定的 我們稱之為「頭」
所以如果「頭」指向「master」 那
就表示你的程式庫目前正位於你修復錯誤的這個分支上
但你可以更換頭部你可以切換你想查看的分支
你也可以查看功能分支並說 讓我們看看那個分支
並開始處理它
你也可以透過轉換注意力的重點
從一個分支切換到另一個分支
再切換回來來開始處理這些不同的分支
只有當你確定這個錯誤已經修復 這個功能
也達到滿意的狀態時 然後在所有這些之後
我們可以將這些變更重新合併 讓所有內
容回到這個已整合的主分支 這個分支現
在包含了最新的程式碼 這就是 Git 分支真正的強大之處 這種合併的能力
我想同時從事多項工作 並開發一
個功能 而不會影
響程式碼的主版本
因此 讓我們現在來看一下我們可能如何進行這項工作的範例
所以在我的 hello html 檔案中 我為這個 h1 加了一些樣式
我加上了藍色
假設我想做些修改
我想將樣式移出內聯樣式
而是想將其移動到網頁的head部分
因為我們之前決定這樣稍微更好一些
設計一個類似這樣的網頁
我可以立即做出這些更改
但如果我預期可能會進行多項更改 我可以選擇不立即進行
我可以轉向另一個分支並分支出
其他內容 以便進行這些新的變更
以下是關於此的一些關鍵指令
如果我輸入 git branch
這會告訴我目前所在的分支以及我
的程式庫中存在哪些分支 所以這裡 例如 我輸入 git branch
我看到我只有一個稱為主分支的分支
那邊的星號告訴我
這就是我目前所在的分支
唯一的一間分行
如果我想切換到一個新分支 我可以輸入 git checkout
如果是建立一個新分支 我會輸入 git checkout -b 然後輸入
新分支的名稱
而且我會呼叫新的分支風格 因為我即將對網頁進行一些風格變更例如
所以我要輸入 git
checkout -b style
而且 git 給了我一個訊息我已經切換到一個叫做 style 的新分支
現在如果我再次輸入 git branch 你會發現
我現在有兩個分支
我目前在主分支上 也就是我一開始所在的分支
現在我在風格分支上 也就是這個新的分支 這個
我現在在線 如左側的星號所示
現在我在這個新分支上 我可
以隨意進行我想要的任何更改
而且我所做的任何事情都不會影響主
分支上的內容 只要我留在這個分支上
因此 我可以說 好吧 讓我們試著去除樣式
然後在頂部添加一個樣式標籤
我可以說 我想讓我的h1有藍色的顏色 例如
我已經做了一大堆變更
現在我想提交這些變更
我會輸入
git commit moveStyleProperties 這就是我所做的修改
但我只是在風格分支中做了這些更改
再次 如果我執行 git
branch 你會發現我目前位於
style 分支 我已將樣式資訊移至此處的頁面頂端
但是我可以使用 git checkout 切換分支
git checkout 允許我切換分
支我們使用 git checkout -b 建立了一個新分支
但是如果你要切換到一個已存在的分支 我可以用 git checkout
master 來切換我的當前分支 例如 從
style 分支切換到 master 分支
所以我要執行 git checkout master
現在我在 master 分支上
現在你會看到 如果我回到檔案
現在我回到內聯樣式 這裡沒有樣式設定
在頁面的head部分
如果我再次查看樣式分支 檔案就會立即恢復
現在我將樣式程式碼放在頁
面的樣式部分 而不是內聯
因此這些更改只應用於頁面的一個部分
那麼現在我再檢查一次 master
而且也許我想對我的 master 分支進行一些其他更改
也許我意識到我想去除這些多餘的標點符號
你知道嗎 兩個驚嘆號太多了
我們會刪除
現在只剩一個了
現在我將提交這些變更
我會輸入git commit並移除標點符號
現在我只從主分支中移除了標點符號
所以這個主分支現在這裡只有一個驚嘆號
但它仍然有內聯樣式
