标签:
1、将项目下载到本地
git clone (git项目地址)
2、进入项目文件夹中(cd 某文件夹) 切换到要使用的分支
git checkout develop
3、抓取远程仓库develop分支更新并合并到本地
git pull origin develop
修改相应文件后,用git status (可查看文件哪些被修改)
git add 文件路径 (选择本次提交文件,文件路径可以是多个文件路径 中间用空格隔开)
git commit (此时会进入vim模式 ,记录此次提交的commit描述)
git push origin develop
git pull origin develop
背景:目前我们开发的项目【云表单】,要用到两个分支,develop、release,develop是用于开发新特征,release是相对稳定版本,测试测release版本,测试通过会直接推到maven仓库,1是供其他项目调用,2推到线上,如果在这个过程中有bug要怎么解决?我们的方案是bug提交到release分支,当然还要提交到develop分支,我的开发经理强烈建议切一个自己的本地分支来修改bug,(可以随意改动,反正不会影响别人 O_O 哈哈)以下以新建分支0730bug_release为例
1、在release分支上切一个自己本地的分支,并切换到新分支
git checkout -b 0730bug_release(自己命名,我习惯以当前日期开头,在哪个分支上拉出来的新分支为结尾)
【这个命令等价于】:
git branch 0730bug_release (创建新分支)
git checkout 0730bug_release (切换分支)
2、在新切分支0730bug_release修改bug
修改相应文件后,用git status (可查看文件哪些被修改)
git add 文件路径 (选择本次提交文件,文件路径可以是多个文件路径 中间用空格隔开)
git commit (此时会进入vim模式 ,记录此次提交的commit描述)
这个过程可重复多次
3、假设多次提交后,要merge到使用的两个分支上
首先:git status 查看本地文件是否有修改,但不想提交的
如果有,git stash (将这些改动的文件暂存起来)
【merge到release】:因为这个分支是成release分支上切出来的,所以这个过程相对简单
git checkout release
git pull origin release
git merge 0730bug_release
如果这个命令执行或 产生冲突,那就去解决冲突好了 ,解决完冲突之后
git push origin release
【merge到develop】:0730bug_release不是从develop拉取出来的,所以会有些不一样
git log (在当前分支0730bug_release找一个commitId,这个commitId是当前所要merge的第一次提交的前一个commitId)
git checkout develop
git pull origin develop
git checkout 0730bug_release
git rebase --onto=develop commitId
git checkout develop
查看是否有冲突 解决冲突
git push origin develop
【merge一次提交到哪个分支都一样,以merge到develop为例】
git log ( 在当前分支0730bug_release上,找到要merge的commitId)
git checkout develop
git pull origin develop
git cherry-pick commitId
查看是否有冲突 解决冲突
git push origin develop
git branch (查看本地所有分支)
git branch -D 0730bug_release(强制删除0730bug_release分支)
git reset --hard commitId (回滚到某次commitId状态)
标签:
原文地址:http://www.cnblogs.com/zhaoyawei/p/5719802.html