前言:git是一個代碼版本的管理程序,可以創建分支,多人協同工作,自己的分支完成了功能/修改了bug;就可以合併到主分支(或者其他次主分支)
次主分支:出現的原因:有時候一個項目由一開始的一個主分支master,因爲不同的客戶需求(它開始有自己獨特的地方),開始併發出兩個,三個或者更多個次主分支,同時進行這麼多次主分支(每個客戶自己的版本)是有些困難的,有時候就會忘記把一個新功能同時同步給某個客戶;這裏就看怎麼把握這個平衡的點了;
由我目前的開發經驗來說,還是不要出現3個以上次主分支的好,我們新建一個git倉庫給他單獨開發
真實開發中的使用(我就主要說windows系統了)
-
第一步:建立本地(準確說當前電腦)的git賬號:這個賬號既可以和github的賬號關聯,也可以和國內的碼雲的賬號關聯;這裏就不講了
git config --global user.name "你自己的喜歡的名字"
git config user.name
,查看你剛剛創建的用戶名git config --global user.email "一個可以使用的郵箱"
git config user.email
,查看你剛剛創建的郵箱(這樣你本地的git賬號的用戶名和郵箱就有了)git config --global push.default simple
設置 Git 推送分支時默認配置:選擇當前分支
-
第二步:創建本地的代碼分支,用於工作
-
第一種情況:你們公司的遠程倉庫已經新建了一個項目倉庫,你是新來的員工/重裝裏電腦/反正就是你的電腦現在沒有這個項目;那麼你需要這樣做:
-
git clone 遠程倉庫的master網址
,注意在你想要工作的文件下打開gitbash,並執行此操作 -
cd 文件夾名稱
進入你本地剛剛拉取的項目文件夾下,再次打開gitbash,會看到此時是 *master:表示當前是主分支 -
git checkout -b 分支名稱
創建本地的一個工作分支(一般不在主分支上開發),分支命名規則:dev_名稱縮寫_模塊
,注意查看網站裏其他人員的分支,不要命名重複 -
git branch
,查看當前分支,帶有*號的是當前分支,再上一個命令結束後,應該就已經切換到你新建的分支上了 -
git checkout 分支名稱
,這個是切換分支命令,可以切着玩,不過工作的時候一定要在自己的分支上 -
git push -u origin 你創建的分支名字
,在遠程倉庫上創建一個你自己的分支,名字最好和你本地相同;這樣是爲了你可以先把自己的代碼提交到你自己的遠程分支,先不合併到主分支,由項目組長檢查一下
此時講解一下你本地有了:master主分支的代碼,和一個空的自己的分支;遠程也有一個master和一個你的遠程分支;所以需要你將本地空分支拉取一份master主分支代碼
-
git pull origin master
,再在本地分支上拉去一遍遠程倉庫主分支master的代碼,以後就在本地分支工作了 -
第二種情況:一般就是自己的項目了,你突發奇想自己寫了點項目,現在想把它放在github或者碼雲上,那你就先在github/碼雲上新建一個項目(空的),然後把本地和它關聯上就行了,使用這個命令:
git push -u origin 項目名
;二者好像可以不一樣,要不要一樣隨你
-
-
第三步:關於提交代碼,注意這些操作是在你本地的個人分支爲前提的
-
git pull origin master
,提交前先拉去一下主分支上的代碼,以避免可能的衝突(另外,如果你是新寫的一個模塊,沒有人寫你這部分的代碼,而且你也沒有修改其他地方的代碼,那麼可以不拉取主分支),衝突一般要在本地處理好 -
git status
,查看本地做了那些修改,紅色的都是你本地修改或者添加的內容 -
git add 上面的文件路徑
,添加文件進暫存區(這個想了解自己查,這裏就不解釋了),記得一個一個添加,不要提交的修改千萬不要提交上去,因爲我目前也沒改過從暫存區把添加錯的文件踢出來,可能有點麻煩 -
git status
,添加完成後,在使用這個命令檢查一下,這個命令經常使用,有事沒事都可以檢查一下 -
git reset HEAD 文件路徑
,這個命令可以撤銷未提交(commit之前)的暫存區的裏添加錯誤的文件 -
git commit -m "你想寫的一些提交註釋說明"
,還是強調當前是在本地個人分支上操作的,這時就把暫存區的內容提交到分支上了 -
git push origin 你遠程分支的名字
,然後提交 合併申請/由組長看一下
-
補充:git checkout /app/xxxx/ad/dfa.php,放棄本次修改
註釋:上述過程並沒有使用合併分支(merge)和暫時存儲(stash)命令,以後有機會再介紹
合併分支操作
通常合併分支時,git一般使用”Fast forward”模式,在這種模式下,刪除分支後,會丟掉分支信息,現在我們來使用帶參數 –no-ff來禁用”Fast forward”模式。
- 本地自己分支修改完內容
- 添加到了暫存區
- 切換到需要合併到的分支(比如把你剛纔修改的分支合併到主分支)
- 使用命令 git merge –no-ff -m “註釋” dev