Github簡單入門操作指南(一)

很久之前聽說過github,貌似是個很厲害的東東,當時也就隨便找了些網上的教程配置了一下簡單操作一下就擱淺了,現在突然感覺有必要真正使用github了,因爲它的版本控制功能確實十分強大,參考學習了一下相關博客,這裏記錄一下git常用的命令,防止再次遺忘。這裏的操作全部是在windows上的

  1. repository
    首先解釋一下,這個是倉庫,也就是版本庫,他相當於一個目錄,它可以用來記錄跟蹤文件的修改刪除,首先這裏創建一個文件,比如demo,之後執行git init命令,見下圖,執行完後這裏生成一個.git文件夾,這個文件不要修改,因爲他記錄着版本的變化,另外提醒一點,創建的目錄最好不要帶有中文
    這裏寫圖片描述

  2. 這裏創建了一個word文檔,與.git同級目錄,裏面寫了一行文字,保存,之後執行如下命令

  3. 這裏寫圖片描述

  4. 這裏寫圖片描述

  5. 這裏git add是將文件添加到暫存區,之後執行git status可以查看當前版本庫的狀態,這裏顯示有文件待提交,之後通過git commit -m “xxx” 這種格式提交到版本庫,注意這裏 -m參數後面跟的是備註,最好寫的能讓自己明白,這次提交更改了什麼東西 ,以後下面如果執行add和commit命令統一用ac表示,這裏add 可以執行多次,用來添加多個文件,之後通過git commit一次性提交到版本庫進行控制管理

  6. 之後再次打開之前創建的test.docx文本,又添加了一行文本,之後保存,通過ac提交到版本庫控制,提交完畢後通過git status可以查看工作區的變化,如果工作區提示是乾淨的,那麼可以放心提交,如果工作區有改動,那麼可以通過git diff 查看變動具體是什麼

  7. 這裏寫圖片描述

  8. 之前提交了多次commit,每次提交其實就相當於保存一個版本,這類似於玩遊戲的存檔一樣,而且更高級的是你每次存檔可以設置相關的描述,讓你自己知道到底這次提交做了什麼,和遊戲一樣,這裏你可以回到任何一個版本,通過下面兩個命令可以查看已經提交過的版本,第二個命令是將命令輸出成一行,這裏commit後面跟的是版本號,是用哈希算法算出來的,顯示的是由近到遠的提交

  9. 這裏寫圖片描述

  10. 這裏我又在word文檔裏寫了一行文字,之後ac,這裏HEAD表示最新版本,如果我想回退到上一個版本,那麼用HEAD^來表示,這裏我們git reset –hard HEAD^ 來實現。

  11. 這裏寫圖片描述
  12. 在沒有回退之前,通過git log顯示的是下面這張圖,表示有四個版本
  13. 這裏寫圖片描述
  14. 執行完回退命令後,查看發現現在一共剩下三個版本了,打開word文檔,查看,此時發現剩下兩行文本了,也就是說成功回退,實現了版本控制
  15. 這裏寫圖片描述
  16. 這裏寫圖片描述
  17. 但是如果你又反悔了,想回到之前的那個版本,但是你看不到對應的commit id,或者說是你關閉計算機再次打開,事實上我們不可能記住每次提交對應的commit,這時候就可以通過 git reflog來查看提交過的所有id,見下圖,之後通過git reset –hard 版本號回退到相應版本即可,這裏一般寫上前六位即可識別,這裏我們回退到之前的第三版本,也就是最新版本,之後打開word文檔查看,發現回到了指定版本
  18. 這裏寫圖片描述
  19. 這裏寫圖片描述
  20. 接下來說下暫存區和分支,文件一開始是放在工作目錄的,之後通過add命令放入暫存區,之後通過commit放到分支,也就是版本庫,在git初始化後會自動創建一個默認分支master,你所做的commit提交都是提交到這個分支,可以通過add將多個文件放入暫存區,如果僅僅是在工作目目錄創建一個文件,那麼他是不會被跟蹤的,只有放入暫存區纔可以,比如我創建了一個demo.txt,之後通過git status查看,見下圖,這裏顯示該文本未被追蹤
  21. 這裏寫圖片描述
  22. 關於多次修改提交,比如我之前創建了一個demo.txt,添加一行文字12345,之後add,然後再次添加一行文字34567,然後commit,然後你通過git status查看,見下圖,顯示demo.txt被修改了,也許你認爲正常情況下顯示的是工作區是clean,也就是工作目錄與版本庫一致,但是你仔細看會發現,你的第二次修改並沒有執行add添加到暫存區,而commit只會把添加到暫存區的內容提交到分支,也就是版本庫,這樣也就出現了工作區與版本庫不一致的情況,可以通過git diff HEAD – demo.txt來查看最新版本庫與當前工作目錄的區別
  23. 這裏寫圖片描述
  24. 也就是如果你多次修改,那麼每次修改都要add,讓其放入到暫存區,之後commit,就可以解決不一致問題了
  25. 這裏寫圖片描述
  26. 關於工作區修改,舉個例子,如果你在工作區不小心修改了某些你不想要的東西,你想撤回,但是又不記得到底修改了什麼,可以通過git checkout – xx 來恢復,這裏我新建了一個back.txt,裏面寫了這麼一行,而且該文件已經被版本控制了,,執行git status命令發現文件已經被修改,工作區與版本庫不一致,通過執行下面這個命令,可以回退工作區的修改,再次打開發現back.txt中沒有內容了,說明回退成功(我在空白時將該文本提交版本控制)

  27. 這裏寫圖片描述

  28. 這裏寫圖片描述

  29. 接下來是另一個測試,如果我將back.txt添加到暫存區,此時back裏面有一行數字,之後我又在本地的工作目錄的back中又添加一行數字,這時候暫存區中內容和工作目錄中內容不同,再次執行git checkout – back.txt可以將工作目錄中該文件回退到提交到暫存區的狀態,也就是一行數字的時候,執行命令後查看,發現已經回退到提交暫存區的狀態。

  30. 這裏寫圖片描述

  31. 這裏寫圖片描述

  32. 如果一個文本已經被版本控制的情況下,你在工作目錄添加了一段錯誤的話,之後add到暫存區,那麼你可以通過git reset HEAD test.txt來撤回暫存區的修改,重新回到工作區,但是工作區的內容此時已經與版本庫中的內容不同了,你還需要執行git checkout – test.txt來撤回工作區的修改,使工作區的內容與版本庫分支內容一致,具體見下圖,之前版本庫中的test.txt文本是一行數字,之後添加一行新數字後add到暫存區,通過reset撤回暫存區的修改,通過checkout 撤回工作區的修改。
  33. 這裏寫圖片描述
  34. 至此總結一下:對於一個已經版本控制的文件,①如果僅僅是工作區的修改,那麼執行checkout – xx.txt,會撤回工作區的修改,使工作區內容與版本庫最新版本一致②如果添加到暫存區,又修改工作目錄中的文件,那麼執行撤銷命令,那麼工作目錄中的文件會退回到提交到暫存區的狀態③如果工作目錄修改後又添加到暫存區,那麼先執行reset撤銷暫存區修改,之後執行checkout撤銷工作區修改,使工作區內容與版本庫內容一致。(總覺得有點像繞口令的說。。。。)
  35. 關於刪除文件,如果一個工作目錄中的文件已經被版本控制,我手動刪除,那麼此時版本庫與工作目錄中文件不一致,此時分兩種情況:如果你是不小心誤刪,那麼通過git checkout – xx.txt可以從版本庫獲取最新版本返回到工作目錄,另外一種是你確實想刪除該文件,那麼你就要刪除版本庫中的文件保持一致,通過執行git rm xxx.txt來刪除,之後通過git commit來提交,執行完後工作目錄和版本庫處於一致狀態,具體見下圖
  36. 這裏寫圖片描述
  37. 關於github的簡單操作先寫這些,記錄下來,方便後期回看,這個github的東西,,當你熟練操作後,一個新的世界的大門就會向你開啓,你會發現它能極大提高工作效率。。。。總之巴啦啦一堆的好處,後邊還會寫幾篇github的東西,回見你吶
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章