如何二十分鐘搞懂git的基礎使用

2022-01-05 19:01:10
本篇文章給大家帶來了git的基本使用相關知識,其中包括git的基本操作,分支操作以及更改提交的操作等等,希望對大家有幫助。

1. 設定SSH Key

設定 SSH Key 使得裝置可以有許可權存取賬戶裡面的程式碼倉庫

$ ssh-keygen -t rsa -C "[email protected]"
  • "[email protected]" 設定為自己GitHub賬戶的註冊郵箱
  • id_rsa 檔案是私有金鑰,id_rsa.pub 是公開金鑰。
$ cat ~/.ssh/id_rsa.pub

ssh-rsa 公開金鑰的內容 [email protected]

  • 然後把公鑰拷貝下來,新增到賬戶裡面,注意要把前面的 ssh-rsa 也拷貝下來
  • 頭像》Settings》SSH Key》new SSH Key

接下來驗證一下,出現successfully字樣即為成功

$ ssh -T [email protected]
Enter passphrase for key '/c/Users/MYPC/.ssh/id_rsa':
Hi abc! You've successfully authenticated, but GitHub does not provide shell access.

2. git 基本操作

2.1 git clone 已有倉庫

$ git clone [email protected]:hirocastest/Hello-World.git

這裡會要求輸入 GitHub 上設定的空開金鑰的密碼,認證成功後,倉庫便會被 clone 到當前目錄中。

2.2 git add 將檔案加入暫存區

程式碼編寫完成之後,將程式碼新增到系統的暫存區

$ git add 資料夾/檔案

2.3 git commit 儲存倉庫的歷史記錄

git commit 命令可以將當前暫存區中的檔案實際儲存到倉庫的歷史記錄中。通過這些記錄,我們就可以在工作樹中復原檔案。

$ git commit -m "記錄一行提交資訊"
  • m 表示對這個提交的概述,如果想要記錄詳細資訊,就把 - m 去掉

2.4 git push

之後只要執行 push 命令,GitHub 上的倉庫就會被更新

$ git push

2.5 git init 初始化倉庫

clone 方法建立倉庫,不需要執行 init 操作。如果要把本地檔案設定為倉庫,那麼就需要進行 init 操作

$ mkdir git-tutorial

$ cd git-tutorial

$ git init

2.6 git status 檢視倉庫狀態

$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

結果現實,我們正處於 masteer 分支下,並且沒有可提交的內容

2.7 git log 檢視提交紀錄檔

git log 命令可以檢視以往倉庫中提交的紀錄檔。包括什麼人在什麼時候進行了提交或合併

$ git log
commit 5dbbff6e009abb8a6cc44187c93b694f94fbf82a (HEAD -> main, origin/main, origin/HEAD)
Author: ywm <[email protected]>
Date:   Sun Feb 28 17:17:00 2021 +0800

只想現實提交資訊的第一行,可以在 git log 命令後加上 -- pretty=short

$ git log --pretty=short

2.8 git diff 檢視更改前後的差別

執行 git diff 檢視當前工作書與暫存區的差別

$ git diff

3. 分支操作

可以建立多個分支,同時進行完全不同的作業。等分支作業完成之後再與 master 分支合併。通過靈活運用分支,可以讓多人同時高效的進行並行開發。

3.1 git branch 顯示分支一覽表

master 分支左側有 「*」(星號),表示這是我們當前所在的分支。

$ git branch
* master

3.2 git checkout 建立、切換分支

建立並切換到分支 feature-A

$ git checkout -b feature-A

實際上,上面那條命令,等價於下面兩條命令

$ git branch feature-A

$ git checkout feature-A

切換回分支 mian

$ git checkout main

切換回上一個分支

$ git checkout -
  • 操作一下:建立一個新的分支 feature,在新的分支上修改 README.md,並且 add、commit

通過實際操作可以證明:只要建立多個分支,就可以在不互相影響的情況下同時進行多個功能的開發

3.3 git merge 合併分支

合併時加上 --no–ff 引數,可以儲存之前的分支歷史

$ git merge --no-ff feature

隨後編輯器會啟動,用於錄入合併提交的資訊

3.4 git log --graph 以圖示的形式檢視分支

$ git log --graph

4. 更改提交的操作

4.1 git reset 回溯歷史版本

$ git reset --hard 目標時間點的hash值

通過 git reflog 檢視當前倉庫的操作紀錄檔,可以找到回溯歷史之前的雜湊值。只要不進行 git 的 GC(垃圾回收),就可以通過紀錄檔隨意調取近期的歷史狀態。即便開發者錯誤執行了 git 操作,基本也可以用 git reflog 命令恢復到原先的狀態。

$ git reflog

上面列印的是最近的操作,下面列印的是最舊的操作

4.2 消除衝突

  • 合併操作的時候,容易出現衝突,這時候需要開啟編輯器,來解決衝突
  • 在實際開發中,往往需要刪除其中之一,所以務必要仔細分析衝突部分的內容後再進行修改
  • 解決衝突之後,再進行 add 和 commit 操作

如果對上一條提交資訊不滿意,可以使用 amend 引數進行修改

$ git commit --amend

4.3 git rebase -i 壓縮歷史

在合併分支之前,如果發現已提交的內容中有些拼寫錯誤,不妨提交一個修改,然後將這個修改包含到前一個提交之中,壓縮成一個歷史記錄。

git rebase -i HEAD~2

可以選定檔期按分支中包含 HEAD 在內的兩個最新歷史記錄為物件,並在編輯器中開啟

5 推播至遠端倉庫

5.1 git remote add 新增遠端倉庫

在建立新倉庫的時候,建議不要勾選 README.md 檔案,這樣會使本地倉庫和遠端倉庫失去整合性。雖然到時候可以強制覆蓋,但防止這一情況發生,還是不要勾選,就建立一個空倉庫就好。

git remote 在先寫程式碼,後建立倉庫的情況下能較好的使用

$ git remote add origin [email protected]:github-book/git-tutorial.git

對於一般先創倉庫,後寫程式碼的,需要先 pull 下來倉庫,再對檔案進行修改

5.2 git push 推播至遠端倉庫

推播至 master 分支

$ git push -u origin master

-u 引數可以在推播的同時,將 origin 倉庫的 master 分支設定為本地倉庫當前分支的 upstream(上游),新增這個引數,將來執行 git pull 命令從遠端倉庫獲取內容的時候,本地倉庫的這個分支就可以直接從 origin 的 masteer 分支獲取內容,省去了另外新增引數的麻煩

除了 master 分支之外,還可以推播到其他分支

$ git checkout -b feature-D

$ git push -u origin feature-D

6 從遠端倉庫中獲取

6.1 git clone 獲取遠端倉庫

$ git clone git倉庫地址

將原生的 feature-D 分支更新到最新狀態

$ git pull origin feature-D
  • 多名開發者在同一個分支中進行作業時,為減少衝突情況的發生,建議更頻繁的進行 push 和 pull 操作

推薦學習:《》

以上就是如何二十分鐘搞懂git的基礎使用的詳細內容,更多請關注TW511.COM其它相關文章!