Hits

Git 命令

git 介绍

git 是我们现在用的最多的代码管理工具,本文章主要介绍作者自己在工作中使用git的一些操作总结。

  • Workspace:工作区,也就是我们的日常开发的代码存放的地方
  • Index / Stage:暂存区,git add 操作之后就会到暂存区
  • Repository:仓库区(或本地仓库),commit之后存放的位置
  • Remote:远程仓库,一般叫origin的仓库

https://img.lg1024.com/blog/img/git.jpg

git 分支介绍

  • dev和master分支是永久存在的两个分支
  • dev分支是开发分支,日常开发都在这个分支进行,
  • master分支用于新版本发布,是稳定的生产环境,每次发布完一个新版本之后,都要打一个tag,同时编写release note。
  • release分支用于准备一个新版本的发布,以release_v<版本号>来命名,比如release_v2.1.0,从dev分支中创建,测试和修改bug都在release分支进行,一般这个分支严禁添加新的大特性。最后,在release分支做的更改也要合并到dev分支,这样的话,将来的其他版本也会包含这些已经解决的bug。
  • hotfix分支是基于当前生产环境master分支的严重bug需要解决而创建的,以hotfix_v<版本号>来命名,如hotfix_v2.5.1。hotfix分支需要从master分支上该版本对应的tag上创建,开发完后,hotfix分支需要合并到master和dev分支。如果当前分支存在release分支也要合并到release分支。
  • 特性分支可以以特性来命名,比如:group(知识圈),一般从dev创建,开发完后合并到dev分支。
  • 定期删除多余的分支,理论上所有的release分支和hotfix分支、特性分支等最终都会被删除的。

git_branch

git常用命令

  • 1. 建议所有git操作都是在配置好 git-ssh 之后的。
  • 2. 拉取代码
    • git fetch origin // 建议
    • git rebase origin/dev // 不建议
    • git pull –rebase
  • 3. 拉取代码可能产生冲突
    • git status // 查看哪些文件发生冲突了
    • git add // 将冲突文件修改后添加到待提交
    • git rebase –continue // 再次将拉取的代码合并
    • git rebase –skip // 忽略当前冲突,不做merge
    • git rebase –abort // 放弃本次rebase
  • 4. rebase完了最后push
    • git push origin dev // 将本地修改推送到远端dev分支
  • 5. 标签管理
    • git tag -a v1.0.1 -m “2018-07-10 released” // 新建一个本地tag
    • git tag -d v1.0.1 // 删除本地tag
    • git push origin v1.0.1 // 把本地tag推送到远程服务器
    • git push –delete origin v1.0.1 // 删除远程tag
    • git show v1.0.1 // 查看某个标签
  • 6. 分支管理
    • git branch -r / -a // -r 查看远程分支,-a查看远程和本地分支
    • git checkout -b release-v1.0.1 v1.0.1 // 新建某标签对应的分支
    • git checkout -b branch_name // 新建当前分支
    • git branch -d branch_name // 删除本地分支, D 强制删除
    • git push origin –delete branch_name // 删除远程分支
  • 7. 分支合并dev->master
    • 拉取最新代码,把本地代码跟远程代码同步
      • git fetch origin
      • git checkout dev
      • git rebase origin/dev
      • git checkout master
      • git rebase origin/master
    • 切换到dev分支,跟master分支做rebase
      • git checkout dev
      • git rebase master // 这一步可能产生冲突,按上面的3解决冲突
    • 切换到master分支,跟dev分支做rebase或merge
      • git checkout master
      • git rebase dev
    • 将合并后的代码推送到远程
      • git push origin master (-f 抢行推送,不解决冲突)
    • 在上面dev跟master合并时,有冲突还要把dev推送到远程(没有冲突就不用推)
      • git checkout dev
      • git push origin dev
  • 8. 回滚
    • git checkout . && git clean -xdf // 删除当前修改和新增的文件
    • git reset –hard HEAD^ / commit_id // 退到上个版本,^3表示回退3个提交,回退或快进到对应的commit_id
    • git push origin HEAD / master –force / -f // 强制提交到master或HEAD

参考:http://blog.jobbole.com/81196/

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 152 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments