分支
顾名思义,分支就是从主线上分离出来进行另外的操作,而又不影响主线,主线又可以继续干它的事,,最后分支做完事后合并到主线上而分支的任务完成可以删掉了。为了不受其他开发人员的影响,你可以在主分支上建立自己专用的分支。完成工作后,将自己分支上的修改合并到主分支。因为每一次提交的历史记录都会被保存,所以当发生问题时,定位和修改造成问题的提交就容易多了。
查看分支信息:
git branch
前面的*表示该分支是当前所处分支
创建分支:
git branch 分支名
切换分支:
git checkout 分支名
命令演示:
在stevenbzhao分支上面开发是不影响master分支的
合并分支:
git merge 要合并的分支名
如果是要合并到主分支上去,该命令需要在主分支下执行,相当于是主分支将要合并的分支拉过来。
删除分支:
git branch -d 分支名
紧急修复bug方案:
命令总结:
- 查看分支
git branch
- 创建分支
git branch 分支名称
- 切换分支
git checkout 分支名称
- 分支合并
git merge 要合并的分支
合并分支可能产生冲突,找到冲突的文件修改
- 删除分支
git branch -d 分支名称
工作流:
一般项目开发我们至少需要两个分支,dev分支用来开发以及功能的迭代,测试没问题后,最后合并到master分支,master分支一般是要是生产环境的版本。
github
GitHub是世界上最大的代码托管平台,举个例子让我们更好的理解github的作用:你作为一个项目的一名开发人员呢每天上下班,奔波于家和公司之间,你有一台办公电脑,每天挤地铁太累了,回家就不想带办公电脑了,但是回到家也想写点项目代码,怎么办呢?这时你想到买台私有电脑用,到家后用自己的电脑写点代码,但是你公司的电脑上面并没有你新写的代码,可能有种做法是拷贝到你的u盘,到公司再将代码拷到公司电脑上去继续开发,但是这样很不方便,而github就能解决这个问题,我们可以用私有电脑将在家里写的代码推送到github上面去,到了公司后再从github上面拉下来就完美解决这个问题了。
那么github怎么使用将代码推送呢?主要有以下几个步骤:
- 注册账号
- 创建仓库
- 本地代码推送
这里我们用国内的"github"码云示例:
注册账号就不演示了,主要演示一下创建仓库和代码推送:
进入主页后右上角有个+号里面有新建仓库选项,点击它:
3.创建好仓库后如何推送代码呢?其实码云平台已经说的很清楚了:
因为我们的代码已经commit到本地了,只需要输入后面两行即可推送到我们的码云仓库上去:
git remote add origin https://gitee.com/Coderzzzz/student.git
git push -u origin "master"
git remote是关联一个远程库,git push是将本地代码推送到仓库中。
可以看到已经已经推送成功了:
但是我们发现只有master分支被推送上去了,那么这样就将stevenbzhao分支也推送了:
git push -u origin "stevenbzhao"
推送上去后,我们到达公司,那么怎么把代码拉下来呢?
克隆远程仓库代码:
git clone 远程仓库地址
之后更新版本就是三步走:add、commit、push,那么为什么不需要git remote呢?是因为clone时其实已经做了这件事了。
在公司进行开发:
1.切换到stevenbzhao分支
git checkout stevenbzhao
2.把master分支合并到stevenbzhao分支(仅一次)
3.修改代码
4.提交代码
git add .
git commit -m 'xx'
git push origin stevenbzhao
回到家中继续开发:
1.切换到stevenbzhao分支
git checkout stevenbzhao
2.拉代码(把公司写的代码更新到本地)
git pull origin stevenbzhao
3.修改代码
4.提交代码
git add .
git commit -m 'xx'
git push origin stevenbzhao
在公司继续开发:
1.切换到stevenbzhao分支
git checkout stevenbzhao
2.拉代码(把公司写的代码更新到本地)
git pull origin stevenbzhao
3.修改代码
4.提交代码
git add .
git commit -m 'xx'
git push origin stevenbzhao
开发完毕,需要上线:
1.将stevenbzhao分支合并到master,进行上线
git checkout master
git merge stevenbzhao
git push origin master
2.把stevenbzhao分支也推送到远程
git checkout stevenbzhao
git merge master
git push origin stevenbzhao
git pull origin stevenbzhao
等价于
git fetch origin stevenbzhao //从远端拉到版本库
git merge origin/stevenbzhao //从版本库合并到工作区