chengfengjie / chengfengjie.github.io

我叫MT
1 stars 0 forks source link

git #9

Open chengfengjie opened 6 years ago

chengfengjie commented 6 years ago

今天合并代码的时候不小心把 feature 代码合并到 master 分支上面, 本来应该合并带 develop分支发布测试环境的,并且已经把合并的代码推送到远程分支上了,以下是一些处理命令:

git checkout master  # 切换到master分支
git log --pretty=oneline # 查看提交记录并找到合并的点的记录ID,例如是: 0cc47032 【前面几位】
git reset --hard 0cc47032  # 版本回退到提交点
git push --force origin master # 强制push覆盖掉远程分支

坑:
在执行 git push --force origin master 的时候报错: remote: GitLab: You are not allowed to force push code to a protected branch on this project.。 解决: 因为我们的git仓库用的gitlab,gitlab默认对master分支进行了保护,无法强制覆盖。需要在gitlab中配置 project->setting->protected branch 把master的保护暂时取消,然后就可以push了,push完成之后建议还是把保护恢复,防止哪个恶意分子把代码回退到远点一推送那就完咯😰

chengfengjie commented 6 years ago

简单项目git分支管理

master分支作为发布生产环境的分支 develop作为发布到测试环境的分支 feature-sprint-x作为开发分支

流程: 项目未上线的开发阶段在master上进行 上线之后的迭代版本名字就是feature-sprint-x, 例如: feature-sprint-1 feature-sprint-x分支只能从 master拉出来,开发完成之后合并到develop分支, develop分支测试通过之后再讲 feature-sprint-x合并到 master

develop分支永远不合并到master, feature分支永远往 developmaster分支合并

所有的合并命令加上参数: --no-ff

开发的所有pull命令加上参数: --rebase

chengfengjie commented 6 years ago

一些命令

git clone https://github.com/chengfengjie/problem.git # clone 一个仓库到本地
git add .  # 将所有的改动添加进入暂存区
git commit -m 'xxxxxx' # 提交暂存区的代码并添加注释
git pull --rebase origin master #从远程仓库拉取最新改动
git push origin master  # 将代码推送到远程仓库
git status # 查看当前仓库git状态
git checkout -b branchName # 从当前分支的当前节点拉出一个新的分支,分支名称 `branchName`
git checkout branchName # 切换到 branchName 分支 
git remote -v # 查看远程仓库的地址
git remote remove <remote> # remote 为远程的名称,一般是 origin 
git remote add <remoteName> <url>  # 将本地仓库关联到远程仓库, url 是远程仓库名称