Git 學習筆記

2021-07-03 22:05:20 字數 3900 閱讀 5881

git學習

一、建立版本庫

初始化乙個git倉庫:(在乙個資料夾目錄下)

git init

新增命令到git倉庫,分兩步:

1.git add ,注意,可反覆多次使用,新增多個檔案;

2.git commit -m "**提交資訊"

二、

檢視倉庫狀態(比如什麼檔案修改過):

git status

檢視檔案修改前和修改後的不同:

git diff

三、版本回退

head指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,使用命令:

git reset --hard

穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本

要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本

四、工作區和暫存區

工作區:

在電腦裡看到的目錄

版本庫:

工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫

git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區, 還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head。

往git版本庫里新增的時候,是分兩步執行的:

第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;

第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

(可以簡單的理解:首先將修改的檔案通過git add 命令通通放在暫存區,之後,通過git commit -m "***"命令,一次性提交暫存區的所有修改)

五、git跟蹤管理的是修改,而非檔案

每次修改,如果不add到暫存區,那就不會加入到commit中。

六、撤銷修改

場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file,就回到了場景1,第二步按場景1操作。

七、刪除檔案

從本地版本庫刪除乙個檔案:

git rm

八、遠端倉庫github

如果希望將git本地倉庫與遠端github倉庫關聯,其步驟如下:

1.在windows使用者目錄下,執行git bash,輸入命令 ssh-keygen -t rsa -c "[email protected]",生成.ssh目錄及其下的id_rsa.pub和id_rsa

2.登入github,在github中add ssh key,填上id_rsa.pub中的金鑰

3.要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git

(git remote add origin [email protected]:myron-chi/git-repository.git)

4.關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

5.此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

轉殖遠端github倉庫到本地git倉庫中:

git clone [email protected]:myron-chi/gitskills.git

九、建立與合併分支

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

十、分支合併(解決衝突)

檢視合併後的分支圖:

git log --graph --pretty=oneline --abbrev-commit

一、分支管理策略

合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併.

例子:git merge --no-ff -m "merge with no-ff" dev

git merge --no-ff -m "提交的描述" 《分支》

十二、bug分支

修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;

當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。

十三、feature分支

開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

四、多人協作

多人協作的工作模式通常是這樣:

首先,可以試圖用git push origin branch-name推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!

如果git pull提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream branch-name origin/branch-name。

這就是多人協作的工作模式,一旦熟悉了,就非常簡單。

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

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

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

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

五、建立標籤

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

git tag -a -m "blablabla..."可以指定標籤資訊;

git tag -s -m "blablabla..."可以用pgp簽名標籤;

命令git tag可以檢視所有標籤。

六、管理標籤

命令git push origin 可以推送乙個本地標籤;

命令git push origin --tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

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 版...