筆記 學習git命令(基本命令版)

2023-01-05 11:56:18 字數 3463 閱讀 8729

好像是之前看到過一篇推送,大概意思是說,學習一門語言最快的方法,就是參加這個語言的開源專案

各大公司的招聘要求中,漸漸地也加入了一條要求:有github開源專案者優先

所以,我的爬坡之路從參加開源專案開始,這篇文章將會記錄我對git命令的學習

強烈推薦廖雪峰的

git教程

,在動手之前,我是詳細地看了一遍 ,算是對git有了一個整體上的認識,對於用svn的小夥伴兒們來說,

這是很有必要的呦;git的安裝及詳細內容,我就不再贅述了,這裡總結一下git常用命令,當做一個備忘

1、建立版本庫:git init

建立版本庫就是在本地找一個放**的資料夾,然後讓git幫你管理這些**,這裡的版本庫是本地的哦

如果出來上面的畫面,就說明你已經建立成功啦,這時候,你的資料夾下面,就會多出一個.git資料夾,是git用來做檔案管理的,不可刪不可改;

2、新增檔案到暫存區:git add 檔名 (git add test.txt)

git跟svn有一個很大的區別,就是git有一個暫存區的概念,字面意思理解,就是“臨時儲存”區域;**只有先被提交到暫存區,然後才能被提交到本地庫;

如果你一次編輯or新增了很多檔案,當然不能一個一個add到暫存區啦,大家可以試下,如果只輸入git add,不輸入檔名,會提示什麼?

既然他都提示了,那就試下看  git add .   是什麼效果嘍;

執行後,當前資料夾下的所有檔案就都被提交到暫存區啦;

看到這裡,習慣使用svn的小夥伴會覺得,git  add操作好像並不太順暢,我都不知道我提交了什麼,也不知道提交成功沒,所以第三個命令登場:

3、檢視工作區狀態:git status

這個命令可以顯示出你當前工作區的狀態是什麼,哪些是新增,哪些有修改,哪些在暫存區需要提交到本地庫等

4、提交到版本庫 git commit

如果直接輸命令git commit 顯示如下

因為git提交,是必須寫message的,這裡寫了message後,先按esc,在下面輸入:wq,然後回車,你的message就會被提交了

如果出現了

e45: 'readonly' option is set (add ! to override)  

是因為你沒有許可權,把輸入命令改為:wq! ,然後回車,強行提交即可

執行帶message的commit: git commit -m "你要提交的message"

這裡有個概念要講下,git commit 命令提交的檔案,是通過git add命令新增到暫存區的檔案,沒有先被提交到暫存區的檔案,不會被commit

如果想強行提交所有修改,則要給命令加一個引數

即:git commit -a

執行後,本地的所有修改,無論有沒有提交到暫存區,都會被提交到本地庫

這裡就很清晰地看出,為什麼說git是記錄每一次修改了;同一個檔案,先增加一行,然後add,再增加一行,diff命令檢視,就有兩次修改;

以上步驟,你就完成了**託管(關聯git)---> 工作區提交到暫存區 ---> 暫存區提交到本地庫 的操作,下面我們再看看這個工作流程中的異常流

5、檢視修改:git diff

這個不解釋,就是檢視本地開發版本與暫存區版本的區別

6、撤銷add:git reset filename

如果你在commit之前,想把之前add到暫存區的檔案撤回來不提交,就可以用這個命令

7、用最新的提交覆蓋本地修改過的檔案:git checkout (git checkout -- filename);

如果本地修改了檔案,然後這時候產品需求變了,不要這個功能了,那我們可以用這個命令,把本地**還原到最新一次提交的狀態。

也就是丟棄本地的更改。當然,你也可以手動更改,但是用命令會感覺牛逼很多,有種一鍵還原的感覺,哈哈

8、刪除檔案 git rm filename

通常情況下,我們習慣用圖形介面刪除檔案,但是對於**託管來說,這時候你刪除的,是你本地

的檔案,在版本庫裡,這個檔案,還是存在的。如果是svn,本地commit一下,**庫裡的這個檔案就被刪掉了

那我們就試試看,用svn的套路,在本地用滑鼠刪除了檔案,然後再commit一下,是什麼狀態

看來對於git來講,刪除是一個比較敏感的操作,所以需要特定的命令去單獨操作,下面有請git rm登場

注意:git rm命令,是刪除檔案在**庫的存在關係,還需要執行git commit 命令,才能真正刪掉**庫中的這個檔案

總結:git rm 會將條目從暫存區中移除。這與 git reset head 將條目取消暫存是有區別的。

"取消暫存"的意思就是將暫存區恢復為我們做出修改之前的樣子。

預設情況下,git rm filename會將檔案從暫存區和本地刪除。如果你要在本地留著該檔案,可以使用git rm --cached

9、版本回退 git reset --hard commitid

版本回退是一個不常用但是卻很重要的命令,往往伴隨著大bug和大問題出現。。。。(隨便發發牢騷,勿噴)

git的版本回退很快,因為她只是改變了當前工作區的指標而已,詳情還是請參考廖雪峰老師的詳細git教程,通俗易懂。

這裡就直接截圖記錄:

學習筆記 Git 基本命令1

學習筆記 git 基本命令1 初始化 git init 檢視狀態 git status 工作區新增到暫存區 git add demo1.c 暫存區回滾到工作區 git reset head demo1.c 清空工作區中的內容 git checkout demo1.c 提交暫存區 git commit...

Git學習筆記 1 Git的基本命令

畫張圖記錄。git config global user.name 姓名 git config global user.email 郵箱地址 其中 global表示對本機上所有git倉庫都使用該配置。在要管理的目錄下使用 git init則在該目錄下會生成一個.git子目錄,即為git版本庫。若要刪...

git筆記 基本命令

1.工作空間初始化 git init 2.建立與遠端的聯絡 git remote add origin git專案遠端地址 1.獲取基礎分支 git pull origin branchname 2.切換到基礎分支 git checkout branchname 3.建立分支 git branch ...