在開發過程中,我們通常不會是乙個人去做乙個專案,而是團隊分工,共同開發。
如何有效地協同開發人員之間,以及開發、測試、上線各環節的工作,在多人開發時是不可避免會遇到的問題。
一般我們在建立專案的時候會針對不同環境建立兩個常設分支
檢視分支,檢視當前有哪些分支。
git branch -v建立新分支
git branch develop刪除分支(刪除的分支不是當前正在開啟的分支)
git branch -d 分支名切換分支
git checkout 分支名合併分支:
第1步:切換到接受修改的分支上
git checkout 需要接受的分支名第2步:執行 merge 命令
git merge --no-ff 有新內容的分支名git merge的時候,有幾種合併方式可以選擇
fast-forward(預設)
git 合併兩個分支時,如果順著乙個分支走下去可以到達另乙個分支的話,那麼 git 在合併兩者時,只會簡單地把指標右移,叫做「快進」(fast-forward)不過這種情況如果刪除分支,則會丟失merge分支資訊。
–squash
把一些不必要commit進行壓縮,比如說,你的feature在開發的時候寫的commit很亂,那麼我們合併的時候不希望把這些歷史commit帶過來,於是使用–squash進行合併,此時檔案已經同合併後一樣了,但不移動head,不提交。需要進行一次額外的commit來「總結」一下,然後完成最終的合併
–no-ff
關閉fast-forward模式,在提交的時候,會建立乙個merge的commit資訊,然後合併的和master分支
通常我們把 master 作為主分支,上面存放的都是比較穩定的**,提交頻率也很低,而 develop 是用來開發特性的,上面會存在許多零碎的提交,快進式合併會把 develop 的提交歷史混入到 master 中,攪亂 master 的提交歷史。所以如果你根本不在意提交歷史,也不愛管 master 幹不乾淨,那麼 –no-ff 其實沒什麼用。不過,如果某一次 master 出現了問題,你需要回退到上個版本的時候,比如上例,你就會發現退乙個版本到了 commint-3,而不是想要的 commit-2,因為 feature 的歷史合併進了 master 裡。
在開發過程中,有時會遇到另外乙個人跟自己修改了同一行**,然後就不可避免的會產生衝突。如果解決不好,不僅衝突解決不了,還會造成回滾**。
解決衝突的方法
Git基礎 版本管理 分支
git init 初始化git倉庫 git status 檢視檔案狀態 git add 檔案列表 追蹤檔案 放入暫存區 git commit m 提交資訊 向倉庫中提交 git log 檢視提交記錄 或者 git log pretty oneline 只檢視版本號 git reset hard 回到...
git 分支管理
一 遠端倉庫有master和dev分支 1.轉殖 git clone 這個git路徑是無效的,示例而已 2.檢視所有分支 git branch all 預設有了dev和master分支,所以會看到如下三個分支 master 本地主分支 origin master 遠端主分支 origin dev 遠...
git分支管理
1 遠端倉庫相關命令 檢出倉庫 git clone git 檢視遠端倉庫 git remote v 新增遠端倉庫 git remote add name url 刪除遠端倉庫 git remote rm name 拉取遠端倉庫 git pull remotename localbranchname ...