工做區、暫存區、本地倉庫、遠程倉庫
1. 概念git
工做區:工做區就是你克隆項目到本地後,項目所在的文件夾目錄。服務器
暫存區:用於存儲工做區中添加上來的變動(新增、修改、刪除)的文件的地方。操做時,使用git add .會將本地全部新增、變動、刪除過的文件的狀況存入暫存區中。優化
本地倉庫:用於存儲本地工做區和暫存區提交上來的變動(新增、修改、刪除)過的文件的地方。操做時,使用git commit –m 「本次操做描述」 能夠將添加到暫存區的修改的文件提交到本地倉庫中。blog
遠程倉庫:簡單來講,就是咱們工做過程當中,當某一我的的開發工做完畢時,須要將本身開發的功能合併到主項目中去,但由於功能是多人開發,若是不能妥善保管好主項目中存儲的代碼及文件的話,將會存在丟失等狀況出現,因此不能將主項目放到某一我的的本地電腦上,這時就須要有一個地方存儲主項目,這個地方就是咱們搭建在服務器上的git遠程倉庫,也就是在功能開始開發前,每一個人要下載項目到本地的地方。操做時,使用git push origin 分支名稱,將本次倉庫存儲的當前分支的修改推送至遠程倉庫中的對應分支中。開發
2. 工做區、暫存區、本地倉庫、遠程倉庫的關係:it
從上圖能夠看到,咱們若是想將在本地工做區中修改,推送到遠程倉庫的話,須要將工做區的修改的內容,添加到暫存區,再將暫存區的內容提交到本地倉庫,最終將本地倉庫的內容推送至遠程倉庫,才能達到最終想要將本地修改推送到遠程倉庫的目的。ast
分支
1. 首先,咱們要明確一個概念,什麼是分支?下載
簡單來講,就是咱們工做過程當中,要開發一個系統,這個系統會由若干個功能組成,咱們將若干個功能交由多我的進行開發。每一個人在開發以前,都會將項目從遠程倉庫下載到本地,而後才能在本地進行對應功能的代碼編寫。im
此時,每一個人就能夠看做是一個分支。項目
每一個人在其分支中進行着功能開發,最終開發完畢後,須要將開發的功能代碼推送到遠程倉庫進行代碼合併,遠程倉庫中才能有咱們開發的功能。
2. 如何使用
在本地倉庫中,能夠建立多個分支,在多個分支中進行不一樣的功能開發,來知足業務需求。
在開發完功能後,爲了保證本地倉庫推送到遠程倉庫的功能代碼,不會出現將其餘人開發的功能代碼覆蓋的狀況,須要在每次使用git push origin 分支名稱 命令將當前分支中,在本地倉庫改動推送到遠程倉庫以前,須要先將遠程倉庫的主幹分支master的最新代碼拉取到本地當前分支的本地倉庫中,再進行推送操做,從而保證最終推送本地倉庫代碼到遠程倉庫時,推送的代碼是完整的(即包含其餘人提交的功能的)。
注意:開發過程當中,必須建立本身分支進行功能開發,不容許直接在master分支中進行功能開發、修改、刪除等操做。以避免誤操做或操做出錯等狀況出現,污染了遠程倉庫的主幹分支master,致使功能代碼沒法繼續使用,也會影響到其餘人的使用。
如您有其餘問題,但願能夠經過留言得形式及時交流,有書寫錯誤和可優化的地方也但願及時提出,感謝。