Git Remotes
本地端的 git 有能力可以回復文件到前一個狀態 (你知道的),但是全部的資訊還是儲存在本地端。如果你在其它的電腦上面有你的 git repository 的副本,則你可以在資料不小心遺失的時候進行救援備份。 更重要的是, remote 讓大家一起來 coding!現在你的 project 放在 remote 上面,你的朋友可以很容易地對你的 project 做出貢獻(或者是 pull 你最後的修改) 。
本地端的 git 有能力可以回復文件到前一個狀態 (你知道的),但是全部的資訊還是儲存在本地端。如果你在其它的電腦上面有你的 git repository 的副本,則你可以在資料不小心遺失的時候進行救援備份。 更重要的是, remote 讓大家一起來 coding!現在你的 project 放在 remote 上面,你的朋友可以很容易地對你的 project 做出貢獻(或者是 pull 你最後的修改) 。
我們已經知道如何利用 git fetch 從 remote 抓取 commit,讓我們來看一下如何將這些 commit 更新到我們的檔案!
一個 commit 在 git repo 中會記錄目錄下所有文件的快照。感覺像是大量的複製和貼上
HEAD 是一個 reference,它是指向目前所 checkout 的 commit,基本上,其實就是你目前所在的 commit。
當你想要複製幾個 commit 並且接在你目前的位置(HEAD)下面的時候,這會是一個非常直接的方式
有一個經常發生的情況:我在追蹤一個有點棘手的 bug,但是它實在太難抓出來了,在不得已的情況下我加入了一些 debug 的指令,並且做了一些 commit。
所有的這些 debug 的指令都只在 bugFix 這個 branch 裡面。最後我終於找到這個 bug,並且 fix 掉它,接著撒花慶祝一下!
現在唯一的問題就是要把我在 bugFix branch 裡面所做的修改 merge 回 main branch。我可以簡單地透過 fast-forward 來 merge ,但這樣的話 main branch 就會包含這些含有 debug 指令的 commit 了。我相信一定有其它方法...
例如你之前已經在 newImage branch 上做了一些 commit,然後又開了一個 branch 叫做 caption ,並且在上面做了一些相關的 commit ,因此它們看起來是一個接著一個的。
有沒有什麼方法可以永遠有一個指向 commit 的記號,例如,表示重大的軟體釋出,或者是修正很大的 bug,有沒有其它比 branch 更好的方法,可以永遠地指向這些 commit?
因為 tag 在 commit tree 上表示的是一個錨點,git 有一個指令可以用來顯示離你最近的錨點(也就是 tag),而且這個指令叫做 git describe!
假設現在下面有一筆資料如下,有什麼方法把一個區塊 (數列或數行)刪除?