天天看點

Git實操

一、環境準備

建立倉庫後,初始化倉庫,先從本地建立一個本地倉庫,再push到伺服器倉庫中

  • git init

提供遠端倉庫位址

  • git remote add origin 克隆/下載下傳中的url

從遠端倉庫拉取檔案

  • git pull origin master

送出本地項目到遠端倉庫

  • git add空格加.

    git commit -m "注釋:現在我送出了一次項目"

  • git push origin master

    彈出資訊框輸入自己的gitee賬号密碼 完成将本地項目送出到伺服器遠端倉庫中(此時Gitee倉庫中就已新增了檔案)

熟練後也可使用工具簡化操作

Goland

一、環境準備

建立倉庫後,初始化倉庫,先從本地建立一個本地倉庫,再push到伺服器倉庫中

  • git init

提供遠端倉庫位址

  • git remote add origin 克隆/下載下傳中的url

從遠端倉庫拉取檔案

  • git pull origin master

送出本地項目到遠端倉庫

  • git add空格加.

    git commit -m "注釋:現在我送出了一次項目"

  • git push origin master

    彈出資訊框輸入自己的gitee賬号密碼 完成将本地項目送出到伺服器遠端倉庫中(此時Gitee倉庫中就已新增了檔案)

熟練後也可使用工具簡化操作

Goland

Git實操

vscode

Git實操

二、分支

使用目的

大型項目,不可能所有人操作master分支,每一個人每一個需求都去建立功能分支feature_x,最終将功能分支合并到master分支。

Git實操

建立分支,并切換到該分支。一步到位指令

  • git checkout -b 分支名

養成習慣,檢視git狀态是位于哪個分支等

  • git status

現在我想從遠端master拉取代碼

  • git pull

執行後顯示目前分支沒有跟蹤資訊(建立跟蹤資訊)

  • git branch --set-upstream-to=origin/分支名 分支名

此時提示請求的上遊分支不存在,由于我正計劃推送一個能與對應遠端分支建立跟蹤的新的本地分支,此時需要推送分支并配置和上遊的關聯

  • git push -u

此時提示目前分支沒有對應的上遊分支,需要推送目前分支并建立與遠端上遊的跟蹤

  • git push --set-upstream origin 分支名

此時git status顯示如下圖所示即可。

Git實操

三、Git三大分區

通俗易懂解釋:

Git實操
Git實操

工作區:編譯器中正在編寫的代碼。

Git實操

暫存區:将你編寫的代碼,類似緩存,暫存到暫存區中。index檔案中,index為二進制檔案(感興趣研究不同指令二進制代碼變化)

Git實操

                這裡由于是二進制檔案直接打開會顯示亂碼,這裡使用hexdump來檢視二進制檔案的十六進制編碼。

Git實操

                實際上據我了解,編寫的代碼add到暫存區後,暫存區存儲的代碼在git/objects檔案中

  版本庫:執行git commit -m "注釋",将代碼送出到版本庫中。

Git實操

                在我每次執行送出指令時,都會生成一此commit日志記錄,通過git cat-file -p xxx可知裡面存放着一個tree對象,檢視此tree

Git實操

                得知這個tree對象對應的就是最頂層的工作目錄,由于我的工作目錄裡隻有兩個檔案,故此tree下隻有兩個blob對象,一般tree下不僅有blob,還有tree的。

                到此,得知,一串哈希值指向的對應一串内容,當儲存改動後,都會重新儲存一次快照。若未改動,保留上次的快照(hash值)。

三、reset

四、revert

五、rebase

六、stash

根據工具貯藏與恢複 Stash Changes貯藏目前改變 Unstash Changes恢複指定的代碼

Git實操

根據Git指令貯藏與恢複

檢視目前貯藏清單

  • git stash list

貯藏

  • git stash save -u "注釋"

恢複,根據list序号

  • git stash apply [email protected]{數字}

vscode