目录
首先你要有远程的master分支
1 clone下master分支
git clone https://github.com/xxxx/xxxx.git
2 切换分支
git branch dev
git checkout dev
上面两个命令等价于:
git checkout -b dev
通过 git branch 查看当前分支
* dev
master
上面的分支只是本地意义上的分支,在远程仓库并没有,如果需要远程dev分支,还要有一下操作,这个分支是不删除的,开发人员用来提交代码的分支
另一种是只需要本地dev分支即可,当开发完merge到master,删除本地分支dev
首先来说远程dev分支的情况
切换分支后要对文件进行一些修改
简单的修改,重要的是过程,这里的vi 相当于你代码修改的操作
vi README.md
add操作
git add README.md
commit操作
git commit -m "提交注释"
接下来这一步就是真正将本地dev推至远程分支
git push --set-upstream origin dev
会出现下面提示
Counting objects: 3, done.
Writing objects: 100% (3/3), 279 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote: https://github.com/xxxx/xxxx/pull/new/dev
remote:
To https://github.com/xxxx/xxxx.git
* [new branch] dev -> dev
Branch dev set up to track remote branch dev from origin.
这里表明远程dev分支已经存在了,去git官网上查看
我的主分支是main就是文中说的master
这里的dev分支就是开发分支,各个开发人员都可以提交代码,然后发版到测试环境调试,通过后在merge到master上,发布生产
合并master时要切换到master分支
git checkout master
接下来就是merge操作,git merge命令用于合并指定分支到当前分支,这里就是将dev分支代码,合并到master上
git merge dev
合并成功
Updating b6cfdae..dbe6c09
Fast-forward
README.md | 2 ++
1 file changed, 2 insertions(+)
另一种是本地dev分支的情况
这种情况只针对你自己修改的测试代码,为了不污染master代码,需要新开辟一个基于最新master代码的分支,当自己的功能测试完毕,发布到master后上生产
开始的操作和第一种基本一致(本地dev已经开辟)
vi README.md
add操作
git add README.md
commit操作
git commit -m "提交注释"
此时就需要直接和master分支合并
切换到master分支
git checkout master
Switched to branch 'master'
merge操作
git merge dev
Updating d46f35e..b17d20e
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
然后删除dev分支
git branch -d dev
Deleted branch dev (was b17d20e).
查看分支
git branch
* master
删除远程dev分支
可能由于自己的一时疏忽或者某些情况不需要dev分支,要删除远程的dev分支,操作如下
首先要切换到master分支下
git checkout master
查看所有分支情况 -a表示所有(all),你会看到dev分支
git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
删除操作
git push origin --delete dev
输入账号密码后
To https://github.com/xxxx/xxxx.git
- [deleted] dev
表示删除了
在查看所有分支
git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
注意:merge代码时可能会出现冲突,从master中clone代码后作为dev分支开发完代码,没有及时pull最新的master代码,导致在merge操作时出现代码冲突,这部分的操作自行百度,不是很难