git工程管理master和dev分支

在個人進行開發軟件開發的時候,使用git的分支可以很好的進行管理自己工程進度.使用master和dev兩個分支策略可以更好的控制開發版本和穩定版本,master分支用於存放軟件的穩定版本,dev分支用於存放開發的版本.master和dev分支的配合也是個人開發常用的策略.下面對分支的創建以及兩個分支之間的切換進行詳述,更多的操作可參考以前的博客學習Git&學習GitHub

從遠程端克隆代碼

git clone git@github.com:xxxxxxx/xxxxxxx.git

查看當前的分支

git branch -a
➜  getBlogVisitorNum git:(master) git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

通過該命令可以查看所有的分支信息,以上面的例子爲例,該項目在github上只有一個分支,下面就創建一個新的分支dev

創建新的分支

git branch <branchname>

git branch
The name of the branch to create or delete. The new branch name must pass all checks defined by git-check-ref-format(1).
Some of these checks may restrict the characters allowed in a branch name.
via git branch --help

該命令創建一個新的分支

命令的應用如下所示

getBlogVisitorNum git:(master) git branch devgetBlogVisitorNum git:(master) git branch
  dev
* master

上面命令可以看到創建了新的分支dev,但是在master分支的前面看到一個*.通過上面命令創建的dev分支還只是一個本地分支,在遠程倉庫並不存在dev分支.下面的發表dev分支到github上面.

發佈dev分支

git push origin dev:dev

getBlogVisitorNum git:(master) git push origin dev:dev
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:idealcitier/getBlogVisitorNum.git
 * [new branch]      dev -> dev
➜  getBlogVisitorNum git:(master) git branch
  dev
* master

通過上述的命令在把本地的dev分支發佈到了github上面,當前的分支仍是master分支.

切換到dev分支

git checkout dev

➜  getBlogVisitorNum git:(master) git checkout dev
Switched to branch 'dev'
➜  getBlogVisitorNum git:(dev) git branch
* dev
  master

通過上述的命令,切換到dev分支上,可以看到dev分支的搶房有一個*

在dev分支上開發代碼,分支合併

日常在dev分支進行代碼的編寫,在測試代碼沒有什麼問題之後可以把dev分支與master進行合併.

git checkout master # 在合併之前切換到master分支
git merge dev # 把dev分支的代碼合併到master分支上
git push # 提交剛剛的操作到遠端github倉庫
git checkout dev # 切回dev分支進行下一步的開發

下面依舊舉一個例子
e.g.

➜  getBlogVisitorNum git:(dev) git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
➜  getBlogVisitorNum git:(master) git branch
  dev
* master
➜  getBlogVisitorNum git:(master) git merge dev
Already up-to-date.
➜  getBlogVisitorNum git:(master) git branch
  dev
* master
➜  getBlogVisitorNum git:(master) git push
warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Everything up-to-date
➜  getBlogVisitorNum git:(master) git branch
  dev
* master
➜  getBlogVisitorNum git:(master) git checkout dev
Switched to branch 'dev'

刪除分支

下面的命令請謹慎操作

git push orgin :dev # 刪除遠程的dev分支
git checkout master # 切換到master分支
git branch -d dev # 刪除本地的dev分支

上述的命令沒有試過,在網上搜的,我還沒有想刪除dev分支,逃~~~

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