这是我参与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到测试或线上分支