git學習筆記

2021-10-02 06:55:24 字數 3671 閱讀 7091

配置過程記錄如下:

1、配置使用者名稱:git config --global user.name 「loveblack」

2、配置****:git config --global user.email 「[email protected]

3、檢視配置過的所有專案:git config --list或git config -l

1、什麼是倉庫?

git中將專案叫作倉庫,本質上其實就是乙個資料夾,就是乙個目錄。

2、倉庫的初始化

(1)建立乙個新資料夾,cd進這個資料夾,執行git init;

(2)或在父資料夾git init test,就會在父資料夾建立乙個資料夾test,並將其初始化為倉庫。

列印當前目錄下的所有子目錄ls -la,可以看到初始化為倉庫後的資料夾中有乙個隱藏的子目錄.git。

4、ctrl + l 命令列清屏。

1、檢視倉庫狀態:cd進倉庫目錄,git status

一般初始化後的倉庫為no commits yet(至今無提交)

2、在倉庫中建立乙個檔案yo.txt,再執行git status,會提示有乙個未跟蹤的新檔案yo.txt。

3、在倉庫目錄下,執行git add . ,將目錄下的所有檔案新增到暫存區。再次執行git status,會發現剛才新增的檔名yo.txt變成綠色

4、git commit -m 「開始的開始」,將剛才的狀態提交,造了一顆後悔藥,對其說明是「開始的開始」。再次執行git status,返回結果:nothing to commit, working tree clean

5、檢視當前有多少後悔藥:git log,檢視版本記錄。最上面的一長串是這顆後悔藥的id,在commit後,也會顯示id,但是只顯示7位,足夠定位乙個版本。按一下q,就退出這個介面了。

6、假如現在對yo.txt這個檔案進行了內容上的更改,更改結束後,再次執行git status,會提示modified:yo.txt。這時我們需要再次執行git add . ,將所有檔案新增到暫存區。然後提交變更:git commit -m 「寫完第一章」,則又造了一顆後悔藥。再執行git log,可以看到現在已經有兩個後悔藥。

git log --oneline:顯示log,每乙個log僅占用一行(顯示縮略資訊)。

7、再次進行修改,git add. ,git commit -m 「修改了第一章」,這時已經存在三個版本。加入我們想回退到第二個版本看一看,則使用git status得到第二個版本的id前7位,執行git checkout c6756bf(替換成對應id)。這時會發現yo.txt中的檔案內容變成了第二個版本中的內容。

對上節總結:在git中,涉及任何檔案的修改,都需要以下三步:

1、修改檔案的內容(modified:已修改)

2、git add .(staged:已暫存)

這步起乙個緩衝的作用,暫存後習慣性地git status以下,看一看即將提交哪些,如果有不需要提交的,自己可以提前處理掉,防止提交一些錯誤的東西上去。

3、git commit -m 「描述資訊」(committed:已提交)

git tag -a v1 -m 「這是版本1」;

若不指明id號,是在最後乙個版本上打上標籤v1。

若指明id號,在指定版本上打標籤。

git tag -a v0.5 -m 「這是版本0.5」 13x885

這是在id為13x885的版本上打標籤v0.5。

打完標籤後,git log -oneline,會看到被打標籤的版本id後面出現括號,顯示其tag。

若想看tag的詳細資訊,git show 標籤名,如git show v1。會展示打標籤的人及其email,還有打上標籤的日期。

同時,tag可以充當id的功能,當打算回退到某版本時,既可以使用git checkout id號,也可以使用git checkout 標籤名,如git checkout v1。

在時間維度上,允許同時存在多條線,稱為不同的分支。

在git init時,會為repository建立乙個預設的分支,稱為master。

git branch rich,建立乙個名為rich的分支;

git checkout rich,從預設的master切換到rich分支上。

head是指向結點的指標,指示當前所在的結點,是建立分支的基礎。到達某個結點後,git checkout -b rich,建立乙個名為rich的分支並切換到這個分支上。當然也可以先git branch rich,再切換到其上。

rich分支的變更結束之後,可以回到master分支,使用git merge rich,將rich分支合併到當前分支的當前head指向的結點上。

git log --oneline --graph --all,可以以圖表的形式顯示出當前分支結點的情況。

為防止本機出現一些意外情況,有必要將**備份到乙個專有的遠端主機、伺服器上,這樣就算本機掛掉,仍然可以從遠端主機拉取**。

遠端倉庫可以在專門的主機上安裝git的服務端來實現,但是對於個人開發者來說代價更高,所以更可取的方式是使用服務,如github、碼雲等。

如何備份到github?

登入github >> 右上角,new repository >> 指定倉庫名稱(型別:public免費,private私有倉庫需要付費)>> 建立完成

上面這幾個步驟其實本質上和我們在本機上git init一樣。

建立完成後,可以得到倉庫的位址,這時需要在我們本地進行設定:

git remote add 遠端名稱 遠端位址

eg: git remote add github

但在多數情況下,遠端名稱命制為origin。

新增完成後,可以使用命令git remote命令檢視當前本地倉庫連線的全部遠端倉庫。

若需要檢視詳細資訊,使用:git remote -v,顯示的資訊中,fetch表示拉取**的遠端倉庫位址,push表示提交**的遠端倉庫位址。

上傳**:

git push -u 遠端名稱 分支名稱

eg: git push -u github master

執行結束,發現**已經上傳到自己的github中。

這裡乙個需要重點注意的,檔案修改過後,必須按照add >> commit的步驟進行一遍,否則push的還是上一次commit的,這次的修改不會體現。畢竟git是乙個版本控制工具,而不是乙個遠端傳輸工具。

還有,在push時,命令列可能呼叫相關程式讓使用者登入。鍵入使用者名稱或郵箱,並輸入密碼即可。

我在自己的github上建立了乙個倉庫test後,開啟發現所有可能要用到的命令已經為我提供好。

1、從github拉取**:

git clone 將會在當前檔案下生成乙個名為cingta的倉庫,裡面是github上儲存的cingta的內容。

也可以在轉殖的同時為倉庫命名:

git clone mycingta

這時將會將轉殖得到的倉庫自動更名為mycingta。

2、不同的使用者從遠端轉殖**後,假如開發人員甲對自己手裡的那份**進行了變更,同時將其push到了遠端。這時其他已經轉殖過**的開發人員,只需要在自己的倉庫資料夾下執行git pull,即可獲取遠端更新。

事實上,git pull = git fetch + git merge

3、當不同開發人員的修改存在衝突時,若內容不同,但提交的版本相同,git會在命令列報錯。衝突內容會在**檔案中用:

《開發人員1提交的內容*****===開發人員2提交的內容》

來提示。這在自己研究的過程中基本不存在,沒必要考慮。

Git學習筆記

git stash git stash list 顯示git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。git stash clear 清空git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。關於git stash的詳細解釋,適用場合,這裡做乙個說明 使用git...

git 學習筆記

1 git checkout master 切換分支 2 git checkout b xx 新建分支,同時切換到該分支 3 dev 4 git add a 將變動檔案,提交到index 5 git commit m 將 暫存區 檔案,加入到版本控制中。6 git checkout master 7...

Git 學習筆記

顯示版本庫.git所在的目錄 git rev parse git dir 顯示工作區的根目錄 git rev parse show toplevel 相對於工作區根目錄的相對目錄 git rev parse show prefix git config 命令各引數的區別 git config e 版...