Git學習筆記

2022-09-23 03:22:02 字數 2558 閱讀 4012

git是分散式的版本控制工具,可離線,svn是集中式的,要聯網操作.集中式的所有資料都放在伺服器端,如果伺服器宕機,則歷史記錄也可能就丟失了,這叫做單點故障.分散式的資料可直接儲存在客戶端.

為何要版本控制呢?比如服務端有一段**,小明和小紅都準備對它進行修改,小明先改好並上傳更新,過一會兒小紅也改好了,也上傳更新了,所以最終伺服器端保留的僅有小紅的**,小明的被覆蓋了,這是我們不願看到的.

git功能很強大:

允許多人並行協同修改服務端的檔案;

資料可以備份,能儲存提交過的歷史狀態,歷史記錄;

版本管理,採用檔案系統快照的方式,不儲存重複資料,節約儲存空間,提高執行效率;

對團隊中參與開發的人員進行許可權控制,對團隊外開發者貢獻的**進行稽核;

分支管理,多線並行開發,提高效率.

至於git的命令,跟linux一樣的風格,常用的有:

1.   git init 初始化

2.   git add file 新增到暫存區

至於 warning: lf will be replaced by crlf in good.txt.  用回車換行替換換行符 

git config core.autocrlf       我在windows上使用,true即可.

3.    git rm --cached file 從暫存區移除

4. git status  檢視狀態

5. git commit file  提交到本地庫

提交會提示你新增註釋,會呼叫編輯器,我的呼叫了sublime,不太習慣,還是喜歡vim,通過命令git config --global core.editor vim 實現更改.

6.    cat file 檢視檔案內容,顯示在主控臺

7.    git commit -m "註釋" file   直接新增註釋提交到本地庫,就不用呼叫vim編輯器了

8.  git log  檢視版本  

若多屏顯示,則 空格向下翻頁,b向上翻,q退出

9.    git reflog 簡潔些, 有head值 ,head相當於指標,指向版本,操作它可實現版本切換

10.   git reset --hard 部分雜湊值如(9a4ehb3)    切換到對應的版本

11.   git reset --hard head^  回退一個版本,加幾個^就回退幾個版本

12.   git reset --hard head~3 回退三個版本

通過命令git help reset 可以看出,這裡的hard引數,表示將工作區,暫存區,本地庫三者都回退到某個版本,對應的還有soft,mixed引數,soft只回退本地庫,mixed回退本地庫和暫存區

13.   rm file 刪除檔案

執行刪除檔案命令後,要提交到暫存區,再提交到版本庫,才會在本地顯示刪除,若要找回,則回退到上個版本即可, git裡的版本歷史記錄永久存在.若只提交到暫存區,則撤銷刪除: git reset --hard head  . 這些刪除找回操作都要求 檔案已經存在於本地庫.

14.   git diff file 將工作區的檔案與本地庫進行比較

git diff head^ file 與上個版本比較,git對檔案以"行"為物件,修改某一行,則顯示刪除某一行後新增某一行.

15.   git branch -v 產看分支

16.   git branch name  新建分支

17.   git checkout name  切換分支 

18.   git merge branch_name  將別的分支合併到當前分支

多分支修改同檔案合併時會產生衝突,編輯衝突檔案,刪除特殊行,然後git add file,git commit -m "註釋"  即可.

19.   git remote add origin 遠端庫ip地址   給地址起個別名

20.   git push origin master -u  推送到遠端庫master分支

21.   git clone 遠端庫地址   克隆遠端庫到本地,自動初始化

協作開發要先得到邀請,然後才能將克隆下來的檔案修改後push到遠端庫

22.   git pull origin master:branchtest  將遠端主機origin的master分支拉取過來,與本地的branchtest分支合併。

如果將冒號和後面的branchtest去掉,則表示將遠端origin倉庫的master分支拉取下來與本地當前分支合併。等價於:

git merge origin/master    與本地的當前分支合併

對於專案的跨團隊協作開發:

a團隊建立了專案的遠端庫aa,要求b團隊也參與進來,b用自己的github賬號登陸後點選a的遠端庫,fork一下,相當於把庫aa複製到自己的賬號裡,再clone到本地,修改,新增,提交,推送,完成後像a傳送pull request, 附上說明資訊,a收到請求後, 檢視修改,稽核**,再merge pull request, 合併.

Git 08 git branch

概述 簡單描述以下 git branch 講解的目的 只是方便新手入門 基本都是最簡單的操作 所以東西可能不全 一是 我不理解 二是 有的東...

Git 自定義Git

讓git顯示顏色 git config global color ui true 忽略特殊檔案 有些檔案有敏感資訊,或者是自動生成的中間檔案。不能或不必提交到git,可以用 gitignore檔案配置忽略不上傳的檔案 一個 gitignore例子, gitignore本身要提交到git window...

git git bash git shell的區別

之前安裝了github csdn上找的,官網的下不來,貌似要fq 後,自帶了git shell,如圖 輸命令的時候發現網上的一些命令不管用,...