git緩衝區檢視 git複習

2021-10-14 07:29:41 字數 4377 閱讀 5662

git官網:

git config 檢視配置資訊

git config --global --list

設定配置

$ git config --global user.name "your name"

$ git config --global at-cost domain pricing - domain cost club "[email protected]"

乙個目錄,這個目錄裡面的所有檔案都可以被git管理起來,這個目錄又叫版本庫又名倉庫,英文名repository

通過git init命令把這個目錄變成git可以管理的倉庫

新建檔案時問號,加入緩衝區去除問號,加入倉庫是對號,檔案被改變顯示紅色感嘆號

untracked files代表新建立的檔案

(use "git add ..." to include in what will be committed)提示將檔案包含到緩衝區中

changes to be committed代表檔案存在於緩衝區,等待被提交到倉庫

(use "git reset head ..." to unstage)提示使用本命令將檔案從緩衝區刪除

changes not staged for commit代表檔案已經修改,但是還沒有放入緩衝區

(use "git add/rm ..." to update what will be committed)表示將編輯區檔案刪除

(use "git add ..." to update what will be committed)提示將檔案包含到緩衝區中

(use "git checkout -- ..." to discard changes in working directory)提示將編輯區的修改部分給恢復到原始狀態

正如上文所說,git在未進行commit操作之前,存在三種狀態:untracked files,changes not staged for commit及changes to be committed,每種狀態之間可以隨意進行互相轉換。

git中三種檔案狀態及其轉換

git diff 格式詳細說明*** git diff 格式詳細說明***

git diff readme.txt 比較編輯區和快取區檔案

git diff --cached readme.txt 比較快取區和倉庫區檔案

git diff head readme.txt 比較編輯區和倉庫區檔案,也可以使用 git diff head -- readme.txt

git必須知道當前版本是哪個版本,在git中,用head表示當前版本,也就是最新的提交1094adb...(注意我的提交id和你的肯定不一樣),上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100。

git reset --hard head^或者git reset --hard 10987aeg32 回退版本區+快取區+工作區檔案

git reset --mixed head^或者git reset head^ 回退版本區+快取區檔案

git reset --soft head^或者git reset --soft 10987aeg32 回退版本區檔案

git checkout -- readme.txt 回退工作區檔案,也就是講暫存區的內容複製到工作區中

git reset head readme.txt 回退暫存區檔案,也就是將版本區的內容複製到暫存區中

編輯區又叫工作區,英文是working directory

緩衝區又叫暫存區,英文是stage或者index

倉庫又叫版本區,英文是repository

git雙橫槓和單橫槓區別 git雙橫槓和單橫槓區別-螞蟻部落

在git中,刪除也是乙個修改操作

新建乙個檔案,並且沒有add到緩衝區,直接使用 rm readme.txt就ok

新建乙個檔案,並且已經add到緩衝區,那麼首先使用 rm readme.txt ,然後使用git rm readme.txt 才能把檔案刪除乾淨

新建乙個檔案,並且已經add到緩衝區,並且已經commit到版本區,那麼首先使用 rm readme.txt ,然後使用git rm readme.txt ,然後使用git commit -m "delete readme.txt"才能把檔案刪除乾淨

上面說的工作區+暫存區+版本區都是在自己的電腦上,而真正要不檔案提交到伺服器上,那麼就要有乙個遠端倉庫,遠端庫的名字就是origin,這是git預設的叫法。

在自己的電腦上要把檔案上傳到遠端倉庫伺服器中,首先要在本機上增加乙個遠端倉庫的宣告,也就是要關聯乙個遠端庫

git remote add origin /d/資料/工作學習記錄/複習/git複習/source

git pull origin master

然後將本機版本庫中內容推送到遠端庫

git push origin master

如何轉殖乙個遠端倉庫呢

git clone /d/資料/工作學習記錄/複習/git複習/source

建立分支(git branch dev) + 切換分支(git checkout dev) = 建立並切換分支( git checkout -b dev)

檢視本機分支(git branch)

檢視本地+遠端分支(git branch -a)

合併分支,首先回到master分支上,然後選擇乙個想要被本分支接納的分支,使用git merge dev

刪除分支 git branch -d dev

git提交到遠端藏庫衝突解決

解決版本是人2先git pull, 然後解決衝突,然後在git push

你會在檔案中發現<<<<<<< head ,*****== ,>>>>>>> ae9a0f6b7e42fda2ce9b14a21a7a03cfc5344d61

這種標記,<<<<<<< head和*****==中間的是你自己的**,*****== 和》中間的是其他人修改的**

自己確定保留那一部分**,最後刪除<<<<<<< head ,*****== ,>>>>>>>這種標誌

git命令列解決衝突檔案步驟

當此時正在dev分支上開發乙個1人天的功能,突然來了乙個1小時的緊急bug修復。

那麼我們還沒有把**提交到倉庫中,我們首先把編輯區的內容全部add到暫存區。

然後執行git stash把dev此時此刻的快取區儲存起來了,並沒有儲存編輯區。

然後拉乙個其他緊急分支去修復bug,當修復完成後,繼續完成我們這個1人天的需求。

我們回到dev分支,然後執行git stash pop將快取區內容找回來。

檢視遠端庫資訊,使用git remote -v;

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

發布乙個版本時,我們通常先在版本庫中打乙個標籤(tag),這樣,就唯一確定了打標籤時刻的版本。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。所以,標籤也是版本庫的乙個快照。

所以,tag就是乙個讓人容易記住的有意義的名字,它跟某個commit綁在一起。

建立標籤

git tag v0.9 f52c633

還可以建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字:

$ git tag -a v0.1 -m "version 0.1 released" 1094adb

命令git tag檢視標籤:

用git show 檢視標籤資訊:

刪除 標籤 git tag -d v1.0

利用git標籤回退至任意版本

忽略特殊檔案

在git工作區的根目錄下建立乙個特殊的檔案(檔案名叫.gitignore),然後把要忽略的檔名readme.txt填進去,git就會自動忽略編輯區中的readme.txt檔案。

然後將.gitignore檔案add+commit到倉庫中。

然後使用git status就發現git不在跟蹤編輯區中的readme.txt檔案了

忽略某些檔案時,需要編寫.gitignore;

.gitignore檔案本身要放到版本庫里,並且可以對.gitignore做版本管理!

建立別名 git config --global alias.br branch 那麼git br = git branch

git hooks簡介 git hooks簡介 - mystitch -

git設定全域性hooks規範化客戶端提交日誌記錄 git設定全域性hooks規範化客戶端提交日誌記錄 - 程式設計師大本營

輸入緩衝區與輸出緩衝區

本博文通過一段程式來理解輸入緩衝區與輸出緩衝區。程式如下 author wanghao created time thu 17 may 2018 06 03 12 ampdt file name test.c description include int main int argc,const c...

使用者程序緩衝區和核心緩衝區

常常聽到有程式設計師會跟你討論 我們在讀寫檔案的時候,系統是有快取的 但實際上有一部分人把使用者程序緩衝區和系統空間的緩衝區的概念混淆了,包括這兩種緩衝區的用法和所要解決的問題,還有其它類似的概念。本文就來區分一下不同的緩衝區概念 主要針對類unix平台 使用者程序和作業系統的關係 首先我用一張圖來...

php 緩衝區,PHP的輸出緩衝區

1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...