3999 元,七彩虹 RTX 2060 12G 戰斧上架,無貨
克隆倉庫到本地
-
git clone 倉庫網址
-
進入倉庫主目錄,如下圖所示,倉庫主目錄中有個 .git 隱藏目錄,它裡面包含了倉庫的全部資訊,刪掉這個目錄,倉庫就變成普通的目錄了。進入到倉庫目錄中,命令列字首發生了一些變化,出現了紅色的 master ,它就是當前所在的分支名:
-
在 GitHub 上建立一個倉庫時,同時生成了倉庫的預設主機名 origin,並建立了預設分支 master。GitHub 可以看成是免費的 Git 伺服器,在 GitHub 上建立倉庫,會自動生成一個倉庫地址,主機就是指代這個倉庫,主機名就等於這個倉庫地址。克隆一個 GitHub 倉庫(也叫遠端倉庫)到本地,本地倉庫則會自動關聯到這個遠端倉庫,執行 git remote -v 命令可以檢視本地倉庫所關聯的遠端倉庫資訊:
-
克隆遠端倉庫到本地時,還可以使用 -o 選項修改主機名,在地址後面加上一個欄位作為本地倉庫的主目錄名,
git三大區域
git的基礎操作
檢視倉庫狀態
-
git status
-
對工作區進行修改
- 增加一個檔案後,在檢視狀態會看到
-
新增修改到暫存區
- git add 檔名(若是多個可以使用git add .)
-
撤銷暫存區的修改
-
git reset -- [檔名] 或者 git rm --cached [檔名]
-
撤銷資料夾 git reset --
-
-
檢視工作區被追蹤的檔案修改詳情
-
git diff
-
使用 git diff --cached 檢視暫存區的全部修改
-
檢視提交歷史
-
執行 git commit 命令把暫存區的修改提交到版本區,生成一個新的版本
-
git log,它用來檢視版本區的提交歷史記錄,當前只有一個提交,就是在 GitHub 上建立新倉庫時的初始化提交。
-
關於檢視提交歷史記錄的命令,有些常用的選項介紹一下:
-
git log [分支名] 檢視某分支的提交歷史,不寫分支名檢視當前所在分支
-
git log --oneline 一行顯示提交歷史
-
git log -n 其中 n 是數字,檢視最近 n 個提交
-
git log --author [貢獻者名字] 檢視指定貢獻者的提交記錄
-
git log --graph 圖示法顯示提交歷史
-
個人資訊配置
-
user.email:寫入你自己註冊 GitHub 賬號的郵箱
-
user.name:你自己的 GitHub 賬號名字
提交暫存區的修改
-
執行 git commit 命令生成一個新的提交,一個必須的選項 -m 用來提供該提交的備註:
-
執行 git log 檢視提交記錄(橙黃色就是提交的版本號)
-
若需要看時間正序排列資訊可以使用git log --reverse
版本回退
-
首先執行 git reset --soft HEAD^ 撤銷最近的一次提交,將修改還原到暫存區。--soft 表示軟退回,對應的還有 --hard 硬退回,後面會講到,HEAD^ 表示撤銷一次提交,HEAD^^ 表示撤銷兩次提交,撤銷 n 次可以簡寫為 HEAD~n。軟退回一個提交後執行 git branch -avv 命令檢視分支資訊:
執行 git status 檢視倉庫狀態,果然上一個提交中的修改全部扔回了暫存區
處理commit時間線分叉
-
如下圖,可以看到本地倉庫的 master 分支與遠端倉庫的 origin/master 分支在提交版本上有了衝突,又叫做提交時間線分叉。因為剛才的提交操作不是基於遠端倉庫 origin/master 分支的最新提交版本,而是撤回了一個版本。這種情況下也是可以將本地 master 分支推送到遠端倉庫的,需要加一個選項 -f ,它是 --force 的簡寫,這就是強制推送:
本地倉庫commit變化記錄
-
假設此時發現情況不對,之前的那次版本號為 5c04 的提交是正確的,剛才的版本回退操作全都是誤操作,怎麼辦?再次執行一次版本回退嗎?當然不需要啦,我們有 git reflog 命令,它會記錄本地倉庫所有分支的每一次版本變化。實際上只要本地倉庫不被刪除,隨你怎麼折騰,都能回退到任何地方。reflog 記錄只存在於本地倉庫中,本地倉庫刪除後,記錄消失。執行此命令如下圖所示:
-
怎麼回退到 5c04 那個版本呢?可以直接執行命令 git reset --hard [版本號] ,如果記不清版本號,也可以根據上圖第 3 行的資訊,執行 git reset --hard HEAD@{2} 命令,其中 HEAD@{2} 就是上圖第 3 行第 2 列所示,這個命令的意思是回到當前分支最近兩次提交版本變化前:
-
還想反悔,剛才還是改對了,怎麼辦?再執行一次即可,這次大括號裡就是 1 了:
-
重要的一點,本節全部命令中,只有 push 是需要聯網執行的,它對遠端倉庫進行了修改。