git 學習筆記一

2022-07-15 01:18:12 字數 3084 閱讀 1092

集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個10m的檔案就需要5分鐘,這還不得把人給憋死啊。

那分布式版本控制系統與集中式版本控制系統有何不同呢?首先,分布式版本控制系統根本沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多,因為每個人電腦裡都有完整的版本庫,某乙個人的電腦壞掉了不要緊,隨便從其他人那裡複製乙個就可以了。而集中式版本控制系統的**伺服器要是出了問題,所有人都沒法幹活了。

在實際使用分布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此,分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

正常安裝好git之後可以$git --version 檢視 git的版本號是否安裝成功

安裝完成之後 進行最後一步的設定

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

$ git config --global user.email "[email protected]"

因為git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和email位址。你也許會擔心,如果有人故意冒充別人怎麼辦?

這個不必擔心,首先我們相信大家都是善良無知的群眾,其次,真的有冒充的也是有辦法可查的。

小技巧$ git clear 清除一下當前的介面

檢視你設定的 使用者名稱和郵箱

$ git config user.name

$ git config user.email

返回上一級目錄cd ..ls可以看到當前目錄下的所有檔案 資料夾在前 文字在後

a) 找乙個合適的地方建立乙個空目錄

pwd 命令用於顯示當前目錄(在window下面 確保不能出現中文 否則就會出現呵呵的問題)

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

瞬間git就把倉庫建好了,而且告訴你是乙個空的倉庫(empty git repository),細心的讀者可以發現當前目錄下多了乙個.git的目錄,這個目錄是git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然改亂了,就把git倉庫給破壞了。(如果你沒有看到 .git目錄 可以直接使用 ls -ah命令就能看見)

現在我們編寫乙個 first.txt檔案 (必須要放在git 倉庫下)

第一步 用git add告訴git 把檔案新增到倉庫:

$ git add readme.txt

第二步git commit告訴 git 把檔案提交到倉庫

$ git commit -m "裡面是本次提交的說明 可以輸入任意內容"

commit 可以一次提交很多檔案 你可以多次add不同的檔案。

接下來 如果我們要修改first.txt檔案 。 改完之後 可以$ git status 檢視結果。

上面的命令告訴我們  first.txt被修改了 但是沒有準備提交的修改。如果我們不清楚修改了readme.txt 使用$ git diff這個命令檢視修改。

git diff顧名思義就是檢視difference,顯示的格式正是unix通用的diff格式,可以從上面的命令輸出看到,我們在第一行新增了乙個「distributed」單詞。知道了對readme.txt作了什麼修改後,再把它提交到倉庫就放心多了。

之後再執行 提交修改和提交新檔案是一樣的兩步,第一步是git add:同樣沒有任何輸出。在執行第二步git commit之前,我們再執行git status看看當前倉庫的狀態:

git status 告訴我們 將要被提交包括first.txt 。最後在檢視。記住 時常檢視 git status的狀態。

如果在團隊協作的時候 你要檢視你自己或者別人提交的日誌可以直接 使用$ git log --author="shiyao" 就可以看到我執行的操作。

像這樣,你不斷對檔案進行修改,然後不斷提交修改到版本庫里,就好比玩rpg遊戲時,每通過一關就會自動把遊戲狀態存檔,如果某一關沒過去,你還可以選擇讀取前一關的狀態。有些時候,在打boss之前,你會手動存檔,以便萬一打boss失敗了,可以從最近的地方重新開始。git也是一樣,每當你覺得檔案修改到一定程度的時候,就可以「儲存乙個快照」,這個快照在git中被稱為commit。一旦你把檔案改亂了,或者誤刪了檔案,還可以從最近的乙個commit恢復,然後繼續工作,而不是把幾個月的工作成果全部丟失。

$ git log 命名顯示最近到最遠的提交日誌 我們可以看到所有提交。 如果閒東西太多 可以加上 --petty=oneline引數

接下來 怎麼會退到上一版本呢?

a)首先要讓git知道當前版本是哪個版本在git中 用head表示當前版本 上一版本就是head^ 上上一版本就是head^^ 如果100寫100個^ 寫不過來 所以寫成head~100

$ git reset --hard head^ 

檢視裡面的內容使用 $ cat first.txt;

此時我們可以使用$ git log 檢視版本庫的狀態。

在沒有關閉命令列的情況下 你還可以回到上面乙個版本。

學習git筆記(一)

git config global user.name your name git config global user.email email example.com 建立乙個版本庫非常簡單,首先,選擇乙個合適的地方,建立乙個空目錄 mkdir learngit cd learngit pwd u...

git 學習筆記一

本地修改後的內容叫工作區,add後的內容在暫存區,git commit m comit instruction 提交說明 git reset hard head 版本庫回退到上一版本 git reset hard commit id 回到commit對應的版本 如果不知道commitid git r...

Git 學習筆記 一

cvs 始祖,集中式1985年 svn 集大成者,集中式2000年 git geek主流,分布式2005年 github geek社群,託管 2008年 git是目前世界上最先進的分布式版本控制系統.svn 是集中式版本控制系統,版本庫是放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從...