git是個啥???
Git是目前世界上最先進的分布式版本控制系統(沒有之一),
作者:林納斯.拖瓦茲 .....就是那個寫Linux系統的天才~
版本控制系統分類:
集中式:代碼集中存盤在中央服務器,開發者的客戶端只有部分自己的代碼,假如中央服務器出問題,會出現資料丟失,傳統的版本控制系統:CVS SVN
分布式:每臺服務器都擁有所有代碼,任意一臺服務器崩潰,從其他服務器復制過來就好,
git的部署
先宣告自己的名字和郵箱
git config --global user.name "LF" git config --global user.email "[email protected]"
創建版本庫
什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有檔案都可以被Git管理起來,每個檔案的修改、洗掉,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”,
[root@git ~]# mkdir /git [root@git ~]# cd /git/
通過git init命令把這個目錄變成Git可以管理的倉庫:
[root@git git]# git init 初始化空的 Git 版本庫于 /git/.git/
將檔案添加到版本庫
首先這里再明確一下,所有的版本控制系統,其實只能跟蹤文本檔案的改動,比如TXT檔案,網頁,所有的程式代碼等等,Git也不例外,版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”,而圖片、視頻這些二進制檔案,雖然也能由版本控制系統管理,但沒法跟蹤檔案的變化,只能把二進制檔案每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道,
[root@git git]# vim readme.txt #創建檔案,模擬代碼 [root@git git]# cat readme.txt #查看內容 1
1、上傳到暫存區
2、提交到版本庫
[root@git git]# ls readme.txt [root@git git]# git add readme.txt #將readme.txt上傳到暫存區 [root@git git]# git commit -m "txt" readme.txt #上傳readme.txt提交到git版本庫,-m“描述” 后邊可以接指定名稱,也可以不接 [master(根提交) 12a8c22] txt 1 file changed, 1 insertion(+) create mode 100644 readme.txt
版本回退
版本修改
[root@git git]# vim readme.txt #添加2
[root@git git]# cat readme.txt
1
2
[root@git git]# git status #查看git倉庫的狀態
# 位于分支 master
# 尚未暫存以備提交的變更:
# (使用 "git add <file>..." 更新要提交的內容)
# (使用 "git checkout -- <file>..." 丟棄作業區的改動)
#
# 修改: readme.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
#git status命令可以讓我們時刻掌握倉庫當前的狀態,上面的命令輸出告訴我們,readme.txt被修改過了,但還沒有準備提交的修改,
提交
[root@git git]# git add readme.txt [root@git git]# git commit -m 'add 2' readme.txt [master 5095b03] add 2 1 file changed, 1 insertion(+)
我們作業不停的修改不停的提交,就和以前打游戲通關會自動存檔一樣,隨時可以回到以前的關卡當中!進度不會丟失!!!
我們嘗試多修改幾次,并提交,順便鞏固前邊2個命令!
[root@git git]# cat readme.txt 1 2 3 [root@git git]# git add readme.txt [root@git git]# git commit -m "add 3" #上述添加3 [root@git git]# vim readme.txt [root@git git]# cat readme.txt 1 2 3 4 [root@git git]# git add readme.txt [root@git git]# git commit -m "add 4" [master 14340e6] add 4 1 file changed, 1 insertion(+) [root@git git]# #添加4
在實際作業中,我們腦子里怎么可能記得一個幾千行的檔案每次都改了什么內容,不然要版本控制系統干什么,版本控制系統肯定有某個命令可以告訴我們歷史記錄,在Git中,我們用git log命令查看:
[root@git git]# git log commit 14340e64b91877835d77d4e6ce69ab74822f44ef Author: LF <[email protected]> Date: Fri Feb 12 21:12:02 2021 +0800 add 4 commit 53546712103a56e5e42ede02fd7b62585f35396b Author: LF <[email protected]> Date: Fri Feb 12 21:10:51 2021 +0800 add 3 commit 5095b03aac0d16b232b7bc756180f3248c2ac44e Author: LF <[email protected]> Date: Fri Feb 12 21:06:46 2021 +0800 add 2 commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 Author: LF <[email protected]> Date: Fri Feb 12 21:00:25 2021 +0800 txt
#上述我們可以看到我們的3次修改,最近的一次add 4,上上次add 3,上上上次add 2;
如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上--pretty=oneline引數:
[root@git git]# git log --pretty=oneline
14340e64b91877835d77d4e6ce69ab74822f44ef add 4
53546712103a56e5e42ede02fd7b62585f35396b add 3
5095b03aac0d16b232b7bc756180f3248c2ac44e add 2
12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 txt
#回退環節
首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交14340e6...(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100,
我們現在從add 4 回退到 add 3 就可以使用git reset命令:
[root@git git]# git reset --hard HEAD^ HEAD 現在位于 5354671 add 3 [root@git git]# cat readme.txt 1 2 3 #回退成功 [root@git git]# git log #查看當前倉庫狀態 commit 53546712103a56e5e42ede02fd7b62585f35396b Author: LF <[email protected]> Date: Fri Feb 12 21:10:51 2021 +0800 add 3 commit 5095b03aac0d16b232b7bc756180f3248c2ac44e Author: LF <[email protected]> Date: Fri Feb 12 21:06:46 2021 +0800 add 2 commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 Author: LF <[email protected]> Date: Fri Feb 12 21:00:25 2021 +0800 txt
#這是你會發現以前add 4 版本不見啦!
#如果想恢復成上一版本也是有辦法滴!
#辦法其實還是有的,只要上面的命令列視窗還沒有被關掉,你就可以順著往上找啊找啊,找到那個add 4的commit id是14340e6...,于是就可以指定回到未來的某個版本:
[root@git git]# git reset --hard 14340e6
HEAD 現在位于 14340e6 add 4
[root@git git]# cat readme.txt
1
2
3
4
#id寫個前幾位就行了不用寫全
#但是還有個隱患!我下班回家啦?第二天我想回到上一天的版本那不是完犢子了嗎?no!辦法總是有滴,如下:
[root@git git]# git reflog
14340e6 HEAD@{0}: reset: moving to 14340e6
5354671 HEAD@{1}: reset: moving to HEAD^
14340e6 HEAD@{2}: commit: add 4
5354671 HEAD@{3}: commit: add 3
5095b03 HEAD@{4}: commit: add 2
12a8c22 HEAD@{5}: commit (initial): txt
# git reflog會記錄你在git中的所有命令,那就沒問題,可以隨意的洗掉代碼了~~~
git小結:
1、創建git倉庫、git init初始化
2、在git倉庫總寫代碼,通過git add xx 上傳至暫存區,在下一步提交git commit “***” 到git倉庫!!
3、關于版本回退通過git reset id即可!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259110.html
標籤:其他
