1. 程式人生 > >git 命令的使用

git 命令的使用

Git中的倉庫概念:
git分散式管理的倉庫核心記錄的就是,每一次git add提交檔案的改變的記錄,與改變的檔案儲存在.git中。
Git中有三個倉庫概念:
本地庫,暫存庫,分支庫
git版本庫之後會生成一個隱藏的檔案 .git ,可以將該檔案理解為git的版本庫 repository,而我們自己建立的專案資料夾即工作區 working directory .
其中有一個index 檔案 就是暫存區也可以叫做 stage ,git還為我們自動生成了一個分支master以及指向該分支的指標head
關鍵字:.Git包含index(stage) 暫存區master分支(指向該分支的head)

結合下圖:
在這裡插入圖片描述

問題一:初始化一個本地倉庫(目錄變成Git可以管理的倉庫)
先進入資料夾,再使用 git init
例項:
在這裡插入圖片描述
問題二:1.新新增檔案存入快取區 2.將檔案修改提交到暫存區
解決方法:git add 檔案
原狀態為:只有一個檔案未提交
在這裡插入圖片描述
之後,我將gitLearn.txt 修改後,添加了一個新檔案後
執行git status,檔案修改後未提交狀態,檔案被修改,新檔案未跟蹤。
在這裡插入圖片描述
執行git add gitLearn.txt
git add gitLearn2.txt
在這裡插入圖片描述
問題三:將快取區的檔案提交到master
git commit -m “提交的資訊”
註釋:
  1. 雙引號使用英文格式否則出錯。
  2. 若出現賬戶問題,please tell me who you are
    新增賬戶即可,如圖 在這裡插入圖片描述
    補充: 關於網上有些人的錯誤
    問題3.1git commit -a 的提交 具體效果補充
    有人講git commit -a 不會講 未added 檔案問題
    情況一:檔案修改後,commit -a 會將其提交掉
    圖:
    在這裡插入圖片描述
    情況二:問題新增檔案沒有 被add操作,執行 commit -a 命令的效果
    列子:我修改一個檔案,新增一個檔案,執行命令
    在這裡插入圖片描述

    在這裡插入圖片描述
    結論:commit -a 不會將未Untracked files 新增到commit中
    問題四:將我修改的檔案恢復(還沒有add 到快取中)
    關鍵字:檔案修改了,但是還沒加入到快取庫中,我發現了錯誤,想要恢復但是不記得了(記得當然自己可以直接恢復)
    解決方法:在這裡插入圖片描述
    在這裡插入圖片描述
    執行命令 git checkout – file(注意-- file 中間有一個空格)
    丟棄工作區的操作,但不會丟失暫存區的操作(add操作能將更改新增到暫存區),實際上就是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”
    在這裡插入圖片描述
    檔案的結果:在這裡插入圖片描述
    在這裡插入圖片描述
    含義:將快取區的替換成工作區的
問題五:如何顯示提交記錄
git log 顯示幾次提交記錄
在這裡插入圖片描述

問題六: 如何將暫存區的檔案內容與master中的檔案內容同步
問題關鍵:暫存區裡有錯誤的add ,如何取消掉,保持暫存於commit 內容同步。
git reset HEAD filename 就是講master(head指向的master)內容同步到暫存區中。

問題七:如何刪除一個檔案
關於檔案的刪除操作容易出現 兩個問題
如果使用git rm, git會記錄檔案的刪除操作
rm 直接刪除檔案,但是使用git commit由於暫存中的檔案沒有add(修改,已經被刪除了),所以使用commit 操作不會記錄檔案被刪除了,要想被記錄,檔案被刪除的操作(檔案以後不再出現在庫,否則只是本地庫將檔案刪除了,而遠端的庫沒有這一記錄,檔案將會被保持)使用git commit -a
解決方法 :
一.使用git rm 進行檔案的刪除後,檔案將被記錄刪除操作,遠端庫也會刪除這也檔案,檔案不再顯示。
二.使用rm ,手動刪除,但是提交時需要使用git commit -a 的命令進行,此時刪除操作會被記錄。
關鍵字:git rm
手動刪除(命令列rm 命令同樣效果) + git commit -am “”;
使用git rm 操作時,檔案必須被提交。與commit的內容相同,否則無法刪除。 或者檔案進行修改退回操作。與體提交保持一致。
在這裡插入圖片描述