深入 Git 和开发规范(二)

1,580 阅读3分钟

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

除了 Git 三连,实际工作中还有哪些常用操作

git checkout--创建、切换分支,放弃本地修改

checkout 命令在分支操作上经常使用,同时支持本地文件的操作 创建并切换到新分支:

git checkout <branch> // 切换到分支

git chekcout - // 切换到上一次使用的分支

git checkout -b <branch> // 创建并切换

放弃某个文件的修改:

git checkout <file>

git checkout . // 放弃所有文件修改

git reset--回退历史版本

Git 的另一特征便是可以灵活操作历史版本。借助分散仓库的优势,可以在不影响其他仓库的前提下对历史版本进行操作。 回退到某个历史提交:

git reset <commit> // 回退到某个版本,不回退文件
git reset --hard <commit> // 回退到某个版本,并回退文件

git merge--合并分支

当开发到一定程度后,需要将开发分支的代码合并到测试或者主干分支,这时候,需要用到 merge 命令。

git merge <branch> // 合并某个分支到当前分支

git pull 的时候,发生了什么?

很多人不理解 Git 的拉取pull和获取fetch的区别,其实当执行 git pull 的时候,经历了两个步骤,一个是获取fetch,并自动合并merge 而获取则支持单纯的执行fetch,并不会自动合并。 如下例子:

git fetch origin master:temp //从远程仓库 master 获取,并建立本地分支 temp

git diff temp //对比修改

git merge temp //合并tmp

修改了文件,突然发现分支不对,怎么办?

有时候当我们修改了文件后发现,分支忘了切回开发分支了,除了笨笨的复制文件,然后切换回正确分支,再恢复代码,还有更好的操作吗? 执行 git stash 暂存修改到缓存后,切换到正确分支,并将修改出栈:

git stash // 暂存修改

git checkout <branch> // 切换分支

git stash pop // 将修改出栈(恢复)

Git分支管理规范

master 主分支

作为正式环境分支(稳定版),只读,不可修改,可被merge 正式服务器应当切换为此分支

release 预发布分支

作为验收环境分支,不可修改,可被merge 验收或正式服务器上线前应当切换为此分支

develop 测试分支

作为测试环境分支,可修改,可被merge 测试服务器应当切换为此分支

feature/ 开发(功能)分支

作为开发环境分支,本地开发和开发服务器应当切换为此分支

hotfix/ 修复BUG分支

作为修复BUG分支,应从线上或测试分支拉取一个hotfix分支,BUG解决后merge到测试或线上分支

Git工作流模型推荐

欢迎阅读其它文章