Git學習筆記

2022-05-12 21:51:09 字數 3231 閱讀 8117

為了更好的管理檔案 我們需要git這樣乙個強大的版本控制系統!

git是目前世界上最先進的分布式版本控制系統【版本控制系統自動記錄每次檔案的改動,還可以讓別人協作編輯】

linux的創始人linus在bitmover公司撤銷支援的威脅下,自立門戶。在兩個星期時間內用c語言寫成了乙個分布式版本控制系統--git.

2023年,github**上線,為開源專案提供git儲存。無數開源專案開始向github遷移,如:jquery,php,ruby.

git是在逆境下誕生出來的傳世之作!

linus痛恨cvs和svn這兩個版本控制系統,它們都屬於集中式版本控制系統。而git屬於分布式版本控制系統。

sudo apt-get install git

還要進行進一步的設定:

git config --global user.name "name"  

git config --global user.email "email"

--global引數會讓這台機器上所有的git倉庫都使用這個配置,但是也可以對某個倉庫制定不同的使用者名稱和email位址。

版本庫又名倉庫,英文名repository,你可以簡單理解成乙個目錄,這個目錄裡面的所有檔案都可以被git管理起來,每個檔案的修改、刪除,git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以「還原」。

建立版本庫的流程:

1.找乙個合適的地方建立乙個空目錄;windows下請保證目錄名中不含有中文

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

git init

initialized empty git repository in /users/michael/learngit/.git/

之後就會發現目錄下多了乙個.git的目錄。是作為隱藏檔案存在的。

這個目錄是git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然改亂了,就把git倉庫給破壞了。

只能跟蹤文字檔案的改動,如txt檔案,html,程式源**等。  

強烈推薦使用utf-8編碼的純文字,而word文件這樣的二進位制儲存的檔案,git就沒有辦法提供改動追蹤。

下面是新增檔案test.cpp到git倉庫的過程:

1.先把檔案放到git倉庫的目錄下,再通過

git add test.cpp
命令把檔案新增到倉庫。

2.在所有要新增的檔案新增完成之後,可以通過

git commit -m "message you want to mark."
進行檔案新增結束後的說明。

注意:

乙個commit命令可以提交多個檔案,只需要一直add就可以了,也可以通過add命令一次add多個檔案。

記住命令:

git init

git add git commit -m "message"

git status
檢視現在的倉庫狀態,可以檢視現在有什麼修改沒有被提交。

git diff
可以檢視未被提交的檔案進行的修改。

git log
通過該命令檢視歷史修改的版本,最近到最遠的提交日誌。如果覺得輸出資訊太多,可以使用--pretty=oneline引數:

git log --pretty=oneline
然後就會顯示commit id,是十六進製制表示的commit id

現在想要將當前編輯的檔案退回到上一次提交的檔案繼續編輯的話,就需要使用git reset命令。

首先git需要知道當前的版本是哪乙個版本。git中,用head表示當前版本。上乙個版本就是head^,上上個版本就是head^^。往上\(n\)個版本是head~n

git reset --hard head^
然後現在的檔案就被還原成了上一次提交的版本。

現在再次使用git log發現已經無法檢視上一次的版本了。

但是我又後悔了怎麼辦呢。其實本質上head是乙個指標,指向當前版本的id。可以通過git reflog命令來檢視每次命令的修改

git reflog

5c963fa (head -> master) head@: reset: moving to head^

8bdbadd head@: commit: my test programme in 0313

5c963fa (head -> master) head@: commit (initial): my test programme

前面的一串數字就是版本號,就可以通過git reset --hard命令加上前面的十六進製制數字來回到數字id所代表的版本。

工作區就是電腦裡的資料夾,就是能在電腦裡面看見的部分,比如我在電腦裡面建立的版本庫資料夾\(githome\)

版本庫版本庫就是.git檔案,內部有兩個部分:暫存區(stage)和主分支(master),而頭指標head就指向master分支。

每次git add操作就是將檔案新增到暫存區。然後通過git commit將暫存區裡面的東西全部提交到master分支中去。然後清空暫存區。

git add的命令每次add的不是檔案,而是對檔案的修改。

因為如果第一次修改後add而第二次修改以後沒有add的話,第二次修改就不會被提交到master分支中。

git checkout -- file命令:

如果誤刪,只能通過git checkout -- file恢復到版本庫內的最新版本。會丟失最近所做的修改。

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