基於 github 結對練習的 源代碼基本管理操作

源代碼管理的基本操作:

1.創建版本庫

 •  sudoapt-get install git 先安裝git

 •  先創建目錄,作爲倉庫

 •  gitinit 初始化倉庫,可以發現當前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,不然改亂了,就把Git倉庫給破壞了

•   vim readme.txt 新建一個文本文件,比如往裏面添加簡單的一行字符串

•   git add readme.txt 添加一個文件,比如readme.txt,如果目錄裏面的所有文件都要添加,可以git add *

•   git commit-m "添加一個readme.txt文件" 將文件提交到倉庫,並加上說明(這時候是版本1

•   如果是第一次使用git,那麼git commit可能報錯,所以需要你配置一些個人信息

•   git config --global user.email"[email protected]" 配置郵件

•   git config --global user.name "YourName" 配置用戶名

•   必須配置,否則後面的commitpush到遠程庫都會失敗

•   然後再次git commit -m "添加一個readme.txt文件" 纔會成功

2.提交修改

•   假如此時第一次修改了readme.txt文件

•   git status 讓我們時刻掌握倉庫當前的狀態。這時告訴我們,readme.txt被修改過了,但還沒有準備提交的修改。

•   git diff readme.txt 查看對readme.txt做了什麼修改

•   git add readme.txt 提交修改和提交新文件是一樣,先git add

•   git status 可以再用git status查看倉庫的當前狀態,告訴我們,將要被提交的修改包括readme.txt

•   git commit-m "第一次修改" 然後再git commit,並添加修改的描述(這時候是版本2

•   git status 可以再執行git status看倉庫狀態,因爲所有的都提交了,Git告訴我們當前沒有需要提交的修改,而且,工作目錄是乾淨(working directory clean)的。

3.版本回退

•   可以像上面所說的那樣不停的提交新的文件、提交對文件的修改

•   這時候第二次修改readme.txt文件

•   git add readme.txt git add

•   git commit -m "第二次修改" 提交第二次修改(這時候是版本3

•   git log 顯示從最近到最遠的提交日誌,具體顯示的內容自己試一試看看

•   git log --pretty=oneline 如果嫌輸出信息太多,看得眼花繚亂,試試加上--pretty=oneline參數

•   看這篇教程去理解爲什麼Git的版本號要這麼長,Git的版本號類似:3628164fb26d48395383f8f31179f24e0882e1e0這樣的特別長的十六進制數。

•   git reset --hard HEAD^ 會回退到上一個版本,也就是從版本3回退到版本2

•   Git中,用HEAD表示當前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100^比較容易數不過來,所以寫成HEAD~100

•   vim readme.txt 可以看到此時的readme.txt文件就是版本2時候的內容,回退成功!

•   git log 此時看到版本3的信息沒有了

•   git reset --hard 3628164 通過命令行上的歷史信息

•   vim readme.txt 看到的是第三版本的readme.txt文件的內容,所以又回來了

4.工作區、版本庫和暫存區

工作區:就是在電腦裏能看到的目錄,比如我的learngit文件夾就是一個工作區。

版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

暫存區:Git的版本庫裏存了很多東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD

    前面講了我們把文件往Git版本庫裏添加的時候,是分兩步執行的

    i.        第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

   ii.        第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

 因爲我們創建Git版本庫時,Git自動爲我們創建了唯一一個master分支,所以,現在,git commit就是往master分支上提交更改。

 可以簡單理解爲,需要提交的文件修改通通放到暫存區,然後,一次性提交暫存區的所有修改。

 5.管理修改

•   vim readme.txt 編輯文件,比如添加新的一行

•   git add readme.txt 添加,但是不提交

•   vim readme.txt 再編輯文件,比如再添加一行

•   git commit -m "修改兩次,添一次,提交一次" 提交

•   git status 看到的效果是:只提交了第一次的修改,第二次的修改沒有提交

那怎麼提交第二次修改,可以繼續git addgit commit,也可以先git add第二次修改,再git commit,也就是第一次修改 -> git add -> 第二次修改 -> git add -> gitcommit,就相當於把兩次修改合併後一塊提交了。

6.撤銷修改

第一種情況

•   修改了readme.txt文件,還沒有git add git commit

•   但是在你提交之前發現這次修改有問題。既然錯誤發現得很及時,就可以很容易地糾正它。你可以手動把文件恢復到上一個版本的狀態。

•   git checkout -- readme.txt 也可以通過命令撤銷修改,這條命令的意思就是,把readme.txt文件在工作區的修改全部撤銷

•   無論是文件修改後值存在於工作區還沒有放到暫存區,還是已經添加到暫存區,總之這個命令就是讓這個文件回到最近一次git commitgit add時的狀態。

•   查看文件,內容果然復原了。git checkout -- file命令中的--很重要,沒有--,就變成了切換到另一個分支的命令,我們在後面的分支管理中會再次遇到git checkout命令。

 第二種情況

•   修改了readme.txt文件,而且執行了git add readme.txt

•   慶幸的是你在 git commit 之前發現了這個問題

•   git status 查看一下,修改只是添加到了暫存區,還沒有提交

•   git reset HEAD readme.txt 可以把暫存區的修改撤銷掉,重新放回工作區。git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD時,表示最新的版本。

•   git status 查看一下,現在暫存區是乾淨的,工作區有修改

•   git checkout -- readme.txt 還記得第一種情況中如何丟棄工作區的修改吧

7.刪除文件

Git中,刪除也是一個修改操作

•   添加一個新的文件 test.txt

•   git add test.txt

•   git commit test.txt -m "再次新增一個文件"

•   一般情況下,通常會在文件管理器中把沒用的文件刪除,或者直接rm test.txt

•   git status 這個時候,Git知道刪除了文件,因此,工作區和版本庫就不一致了,git status命令會立刻告訴哪些文件被刪除了

•   現在有兩個選擇,一是確實從版本庫中刪除該文件,那就git rm test.txt,然後git commit 文件就從版本庫中刪除了

•   另一種情況是刪除錯了,因爲版本庫裏還有,所以可以輕鬆地將誤刪除的文件恢復到最新版本git checkout -- test.txtgit checkout其實使用版本庫中的版本替換工作區的版本,無論工作區是修改還是刪除,都可以一鍵還原“。


下面是我們組上手操作的實驗過程截圖:

  1. 首先 start a project
  2. 建立 blockChain
  3. 組隊
  4. cmd 打開 git  
  5. 輸入 新建文件夾:new project 的路徑
  6. 配置 用戶名、郵箱

  7. 將本地電腦中的項目 github 進行關聯,生效





  8. 組員 獲取組長項目

  9. 組員 通過 fork,對文件進行修改


  10. 組員 通過 create pull request 發起修改申請




  11. 組長 查看pull request,並通過 merge pull request 決定是否同意修改組員的申請。



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章