git基礎運用

2021-10-24 19:36:09 字數 3160 閱讀 4509

git 基礎運用

一、git檔案狀態

在說git的檔案狀態前,首先要了解整個git的操作空間,git將空間分為工作區、暫存區、git倉庫

工作區是指儲存在磁碟上供你使用修改的區域,一般就指從伺服器轉殖下來的資料

暫存區是乙個檔案,儲存了下次要提交的檔案列表資訊

git倉庫就是指本地倉庫,儲存了commit提交的各個版本,個人理解git倉庫指的是.git/objects資料夾,

儲存專案的元資料和物件資料庫。

git的檔案狀態有兩種,追蹤(track)和未追蹤(untrack),追蹤的意思是該檔案已經納入git的版本控制,git已經知道這個檔案,未追蹤是指該檔案未納入git的版本控制,git不知道這個檔案,這是個新的檔案。同時檔案在被追蹤到後又有三種狀態,根據git的三個區間可以分為已提交(committed)、已修改(modified)和已暫存(staged)。怎麼理解這三種狀態和前兩種狀態?舉個例子假如你初始化了乙個git倉,裡面什麼都沒有,建立乙個新的a.c檔案,這個檔案屬於untrack,使用git add後這個檔案屬於track並且暫存狀態,然後git commit提交屬於已提交狀態,最後你再次修改這個檔案屬於已修改未暫存狀態。

已修改表示修改了檔案,但是還沒有儲存到資料庫

已暫存表示對乙個已修改的檔案在當地版本做了標記,使之包含在下次提交的快照中

已提交表示資料已經安全地儲存在本地資料庫中

二、git基礎命令

git help,git --help,man git-這三個命令可以用來查詢git手冊,-h可以查詢精簡手冊。

git config是用來設定git外觀和行為的配置變數,通過三個不同的檔案配置。下面的路徑都是linux系統路徑。

1./etc/gitconfig檔案:系統上的每個使用者的通用配置,–system選項相關

2.~/.gitconfig:當前使用者配置,–global選項相關,~代表home路徑

3../.git/config:當前倉庫的配置,–local選項相關

上述三個配置檔案的額優先順序依次遞增,git config有很多選項設定在這就不贅述。

git init初始化git倉庫

git clone從遠端伺服器轉殖git倉庫,後面接多種資料傳輸方式,https://、ssh等協議。

git add有兩個功能,乙個是追蹤(track),後面接路徑時,遞迴地追蹤該目錄下的所有檔案。乙個是把已跟蹤的檔案放到暫存區,可接檔名。

git status檢視檔案狀態,不多贅述。

git diff不加引數,比較的是工作目錄當前檔案和暫存區檔案之間的差異,也就是修改之後未暫存的變化。加引數--staged,比較的是已暫存的檔案和最後一次提交的檔案的差異。

git commit將暫存區的改動提交給本地版本庫,--amend修改提交資訊。

git rm從git中移除檔案,如果直接在本地刪除檔案,在git中並不會完全刪除,會顯示"changes not staged for commit"。執行git rm可以清楚該提示。值得注意對於已經放入暫存區的檔案需要使用命令git rm -f。如果想在本地儲存該檔案,不想被git追蹤可以使用git rm --cached。可以使用glob正則來提高匹配範圍,詳細看git的正則匹配方式。

git mv移動檔案位置,也可重新命名檔案。

git log不加引數按照時間先後列出所有的提交。git log -p 或者--patch列出每次提交的改動,加入-2限定顯示幾筆提交。git log --stat對每筆提交進行總結,列出修改了哪些地方等總結性的資訊。git log --pretty可以使用不同的方式顯示提交歷史,pretty可以取多種值如oneline、short、full等其中git log --pretty=format:" "可以定製化格式輸出,詳細見文件。oneline 和 formatgraph結合時可以顯示分支、合併歷史。與下圖中的引數結合可以過濾某些資訊。

git reset回退版本,git reset head將暫存的檔案回退成未追蹤。如果想將檔案回退到沒修改的狀態使用git checkout --

git tag打標籤,打標籤分為輕量標籤和附註標籤,輕量標籤就是簡單的標籤只需要提供標籤名不需要描述,使用git show 《標籤》顯示標籤也不會有額外的資訊,使用命令git tag 《標籤名》。附註標籤就是詳細的標籤,在git中使用乙個完整的物件儲存,使用git tag -a 《標籤名》 -m 《描述》。如果想對過去的提交打標籤可以使用git tag -a 《標籤名》 《雜湊值》。共享標籤:將標籤上傳到遠端伺服器git push origin 《標籤名》git push origin --tags可以傳送多個標籤。刪除標籤:git tag -d 《標籤名》,要刪除遠端倉儲的標籤使用git push :refs/tags/這個命令的含義是將:前的空白標籤推送到遠端標籤,從而刪除它;也可以使用git push --delete刪除。標籤檢出的detached head問題不清楚

Git運用高階

git建立本地分支 git checkout b x 或git branch x git checkout x git從倉庫轉殖 轉殖專案 git clone git ip 專案.git 轉殖專案並在本地建立開發分支 git clone git ip 專案.git b develop git更新本地...

git的簡單運用

記得是在當前目錄 就是需要你上傳的檔案目錄 下開啟git bash here git clone ssh 此處為把你遠端的原件轉殖到本地 git status 檢視當前狀態 git add all 上傳當前所有檔案 git commit m 此處填寫為你上傳檔案的簡單說明 git pull orig...

C 執行緒運用基礎

threadstart ts new threadstart a.f threadstart 是乙個委託,用以關聯a.f方法 thread th new thread ts thread是乙個類,例項化物件時呼叫的構造函式引數為ts這個委託物件 th.start 執行緒開始 執行緒的同步控制 1.使...