《精通git》筆記之四(git基礎)

2021-10-12 06:02:28 字數 3039 閱讀 3005

有時候我們提交完了才發現漏掉了幾個檔案沒有新增,或者提交資訊寫錯了。此時,可以執行帶有 --amend 選項的提交命令嘗試重新提交:

$ git commit --amend
例如,你提交後發現忘記了暫存某些需要的修改,可以像下面這樣操作:

$ git commit -m 'initial commit'

$ git add forgotten_file

$ git commit --amend

最終你只會有乙個提交 - 第二次提交將代替第一次提交的結果。

取消暫存命令:

git reset head ...
撤消對檔案的修改

git checkout -- [file]
在 git 中任何已提交的東西幾乎總是可以恢復的。甚至那些被刪除的分支中的提交或使用 --amend 選項覆蓋的提交也可以恢復。然而,任何你未提交的東西丟失後很可能再也找不到了。git checkout – [file] 是乙個危險的命令。

如果想檢視你已經配置的遠端倉庫伺服器,可以執行 git remote 命令。它會列出你指定的每乙個遠端伺服器的簡寫。

你也可以指定選項 -v,會顯示需要讀寫遠端倉庫使用的 git 儲存的簡寫與其對應的 url。

$ git remote -v
執行git remote add 新增乙個新的遠端 git 倉庫,同時指定乙個你可以輕鬆引用的簡寫:

$ git remote add pb
現在你可以在命令列中使用字串 pb 來代替整個 url。

$ git fetch [remote-name]
git fetch 會抓取轉殖(或上一次抓取)後新推送的所有工作。必須注意 git fetch 命令會將資料拉取到你的本地倉庫 - 它並不會自動合併或修改你當前的工作區。當準備好時你必須手動將其合併入你的工作區。

執行 git pull 通常會從最初轉殖的伺服器上抓取資料並自動嘗試合併到當前所在的分支。

當你想分享你的專案時,必須將其推送到上游。

命令:git push [remote-name] [branchname]。

當你想要將 master 分支推送到 origin 伺服器時(再次說明,轉殖時通常會自動幫你設定好那兩個名字),那麼執行這個命令就可以將你所做的備份到伺服器:

$ git push origin master
檢視遠端倉庫

如果想要檢視某乙個遠端倉庫的更多資訊,可以使用 git remote show [remote-name] 命令。

如果想要重新命名引用的名字可以執行 git remote rename 去修改乙個遠端倉庫的簡寫名。例如,想要將 pb重新命名為 paul,可以用 git remote rename 這樣做:

$ git remote rename pb paul
在 git 中列出已有的標籤是非常簡單直觀的。只需要輸入 git tag:

$ git tag
git 使用兩種主要型別的標籤:輕量標籤(lightweight)與附註標籤(annotated)。

乙個輕量標籤很像乙個不會改變的分支 - 它只是乙個特定提交的引用。然而,附註標籤是儲存在 git 資料庫中的乙個完整物件。它們是可以被校驗的;

在 git 中建立乙個附註標籤是很簡單的。最簡單的方式是當你在執行 tag 命令時指定 -a 選項:

$ git tag -a v1.4 -m 'my version 1.4'
-m 選項指定了一條將會儲存在標籤中的資訊。

通過使用 git show 命令可以看到標籤資訊與對應的提交資訊:

$ git show v1.4
另一種給提交打標籤的方式是使用輕量標籤。輕量標籤本質上是將提交校驗和儲存到乙個檔案中 - 沒有儲存任何其他資訊。建立輕量標籤,不需要使用 -a、-s 或 -m 選項,只需要提供標籤名字

$ git tag v1.4-lw
這時,如果在標籤上執行 git show,你不會看到額外的標籤資訊。命令只會顯示出提交資訊:

$ git show v1.4-lw
後期打標籤

你可以在之後補上標籤。要在那個提交上打標籤,你需要在命令的末尾指定提交的校驗和(或部分校驗和):

$ git tag -a v1.2 9fceb02
9fceb02代表的是雜湊值。

共享標籤預設情況下,git push 命令並不會傳送標籤到遠端倉庫伺服器上。

在建立完標籤後你必須顯式地推送標籤到共享伺服器上。這個過程就像共享遠端分支一樣 - 你可以執行 git push origin [tagname]。例如想要push標籤v1.5:

$ git push origin v1.5
如果想要一次性推送很多標籤,也可以使用帶有 --tags 選項的 git push 命令。這將會把所有不在遠端倉庫伺服器上的標籤全部傳送到那裡。例

$ git push origin --tags
如果不想每次都輸入完整的 git 命令,可以通過 git config 檔案來輕鬆地為每乙個命令設定乙個別名。這裡有一些例子你可以試試:

$ git config --global alias.co checkout

$ git config --global alias.br branch

$ git config --global alias.ci commit

$ git config --global alias.st status

這意味著,當要輸入 git commit時,只需要輸入 git ci。

Git學習筆記之Git的基本操作(四)

工作區 working directory 就是你在電腦裡能看到的目錄 版本庫 repository 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。git的版本庫里存了很多東西,其中最重要的就是稱為stage 或者叫index 的暫存區,還有git為我們自動建立的第乙個分支mas...

Git學習筆記(四) Git物件

git cat file t id號 檢視此id號對應的物件型別 commit tree parent blob git cat file p id號 檢視此id號對應的物件內容 這些物件儲存在git庫中的objects目錄下 id前兩位作為目錄名,後38位作為檔名 通過commit物件之間的相互關...

git 基礎筆記

第三章 git 的分支操作建立分支 第四章 github的實戰操作 1.1 備份 1.2 協同開發 1.3 版本還原 1.4 歷史追查 1.5 版本記錄 1.6 衝突解決 1.7 許可權管理 1.8 分支管理 1.9 審查 在專案資料夾,執行 git init 新建檔案後,通過git status進...