Git使用心得

2023-01-19 10:45:36 字數 3134 閱讀 9001

在孟寧老師講授的高階軟體工程這門課中,我學習到了git這個版本控制工具的使用方法。

使用git status命令可以檢視當前workspace的狀態。

此時是剛剛初始化的倉庫,裡面還沒有東西。

git add [檔名] 將特定檔案(files)或者當前目錄下所有檔案新增到暫存區。

再次使用git status命令檢視狀況,看到指定檔案被放到暫存區。

使用git commit -m 命令將暫存區的檔案提交到倉庫。

再用git status命令檢視狀態,發現暫存區的檔案已經被提交。

使用git reset —hard 命令可以回到過去的狀態。

使用git reflog 命令回到未來的狀態。

如果您已經在gitee.com或者github.com等**上建立了git版本庫,可以通過git clone命令,將版本庫克隆到本地完成本地版本庫的初始化。git clone命令的用法如下:

這裡使用git clone之後預設的分支,即遠端為 origin/master 和本地 master,沒有建立其他分支。管理本地版本庫跟蹤的遠端儲存庫的命令為git remote。

使用git remote -v 可以檢視更詳細的遠端儲存庫資訊,包括fetch(抓取)的遠端儲存庫url和push(推送)的遠端儲存庫url。

git fetch、git push加上git clone是三個對遠端儲存庫的基本操作,而git pull(拉取)是實際上是 git fetch + git merge(合併)的組合。

有了前面的基礎知識和技能之後,我們可以考慮更復雜一些的團隊專案合作的工作流程。

如果團隊專案像場景二的方法一樣多人同時向遠端origin/master分支頻繁提交**,一來可能會有諸多衝突合併的情況發生;二來整個git log提交記錄中多個開發者或多個**模組的commit是交錯排列在同一條時間線上,不利於回顧檢視和回退**,讓跟蹤**的成長軌跡變得異常困難。

我們需要考慮新的方式來能夠獨立維護不同的開發者或者不同的功能模組的**,讓一段連續的工作在commit日誌的時間線上呈現為一段獨立的分支線段,只在關鍵節點處進行分支合併。

基於以上想法我們建議團隊專案的每一個開發者都採用的工作流程大致如下:

克隆或同步最新的**到本地儲存庫;

為自己的工作建立一個分支,該分支應該只負責單一功能模組或**模組的版本控制;

在該分支上完成某單一功能模組或**模組的開發工作;

最後,將該分支合併到主分支。

特別注意的是預設的合併方式為"快進式合併"(fast-farward merge),會將分支裡commit合併到主分支裡,合併成一條時間線,與我們期望的呈現為一段獨立的分支線段不符,因此合併時需要使用--no-ff引數關閉"快進式合併"(fast-farward merge)。接下來我們會具體瞭解分支合併的具體方法。

使用git checkout -b [分支名]建立分支。

使用git branch命令檢視分支列表,git checkout [分支名]切換分支。

使用git merge [分支名]合併分支。

如果要保留mybranch分支為一段獨立的分支線段,則需要使用--no-ff引數關閉"快進式合併"(fast-farward merge),git命令如下:

git merge --no-ff [檔名]
使用--no-ff引數後,會執行正常合併,在master分支上生成一個新節點。合併後大致如下示意圖。

一般我們在軟體開發的流程中,有一個樸素的版本管理哲學:開發者的提交要儘量乾淨、簡單。開發者要把自己的**修改按照功能拆分成一個個相對獨立的提交,一個提交對應一個功能點,而且要在對應的 commit log message 裡面描述清楚。因此在合併和 push 之前檢查修改一下 commit 記錄時常需要。

場景四實際就是在場景三團隊專案工作流程中增加一步git rebase,即在mybranch分支上完成自己的工作之後,為了讓 log 記錄將來更容易回顧參考,用 git rebase 重新整理一下提交記錄。注意不要通過rebase對任何已經提交到遠端倉庫中的commit進行修改。

git rebase命令格式大致如下:

1 git rebase -i  [startpoint]  [endpoint]
其中-i的意思是--interactive,即彈出互動式的介面讓使用者編輯完成合並操作,[startpoint] [endpoint]則指定了一個編輯區間,如果不指定[endpoint],則該區間的終點預設是當前分支的head。

一般只指定[startpoint] ,即指定從某一個commit節點開始,可以使用head^^、head~100、commit id或者commit id的頭幾個字元來指定一個commit節點,比如下面的**指定重新整理head之前的三個commit節點。

先提交兩次檔案。

使用git rebase命令丟棄一次提交。

感謝孟寧老師的教導讓我們對git有了一定的瞭解與應用。

Git 使用心得

從本地新建倉庫 cd 到想要建立倉庫的資料夾 git init git remote add origin 加遠端倉庫地址 git add git commit m git push origin master 分支 從遠端倉庫建立 cd 到想要建立倉庫的資料夾 git clone 加遠端倉庫地址 ...

git使用心得

總結下最常使用的git命令,廢話少說,直接上乾貨。1 git初始化 這個新手一般很少遇見,但是如果要使用類似github這樣的git倉庫,第一個肯定是如何建立git的問題。在github上先建立自己的倉庫源,然後做以下操作 1 git賬戶的錄入 git config global user.name...

git使用心得

檢視分支 git branch 或者 git branch v a 建立分支 git branch 分支名 b 切換分支 git checkout 分支名 c 刪除分支 git branch d 分支名 如果該分支沒有合併到主分支會報錯 或者 git branch d 分支名 強制刪除 d 分支合併...