git使用指南及分支管理策略
Git是什么?
Git是一个开源的分布式的版本管理工具。
为什么要使用GIt?
Git是目前世界上最先进的版本管理工具,尤其在分支管理上表现突出,能够极为方便地解决开发中的版本问题。
Git如何使用?
工作区:git仓库所在目录
版本库:工作区中的.git目录
暂存区:版本库中等待提交的内容所在区域
git命令
基本命令 | |
git init | 在当前目录下创建一个版本库 |
git add file | 将文件从工作区添加到暂存区 |
git commit -m "message" | 将暂存区中的内容提交到版本库的当前分支 |
git status | 查看git仓库当前状态 |
git diff file | 查看文件修改内容 |
git diff HEAD -- file | 查看工作区和仓库最新版的差别 |
git log [--graph][--pretty=oneline][--abbrev-commit] | 查看历史commit日志,不能查看已删除的commit记录 |
git reset --hard HEAD~x | 回到历史版本 |
git reflog | 查看所有分支的所有操作(包括commit和reset) |
git rest --hard commit_id | 回到任意版本 |
git checkout -- file | 丢弃工作区的修改 |
git rm file | 删除文件 |
远程仓库 | |
git remote add origin remote_address | 关联远程git仓库 |
git push -u origin master | 首次向远程仓库推送master分支所有内容 |
git push origin branch_name | 从本地推送分支 |
git pull | 从远程抓取当前分支 |
git clone remote_address | 将远程仓库克隆到本地 |
git checkout -b branch-name origin/branch_name | 在本地创建和远程分支对应的分支(分支名称最好一致) |
git branch --set-upstream branch_name origin/branch_name | 建立本地分支和远程分支的关联 |
git remote -v | 查看远程库信息 |
分支管理 | |
git branch branch_name | 创建分支 |
git checkout branch_name | 切换分支 |
git checkout -b branch_name | 创建并切换分支 |
git branch | 列出所有的分支 |
git merge [--abbrev-commit] [-m "message"] branch_name | 合并指定分支到当前分支 |
git branch -d branch_name | 删除分支 |
git branch -D branch_name | 强行删除未合并的分支 |
git stash | 存储当前工作区 |
git stash list | 查看保存的工作区 |
git stash apply stash@{0} | 恢复stash但不删除 |
git stash drop | 删除stash |
git stash pop | 恢复stash同时删除stash |
标签管理 | |
git tag tag_name | 在当前分支的最新commit上创建标签 |
git tag | 查看所有标签 |
git tag tag_name commit_id | 在当前分支的指定commit_id上创建标签 |
git tag -a tag_name -m "message" commit_id | 在当前分支的指定commit_id上创建带说明的标签 |
git show tag_name | 查看标签信息 |
git tag -d tag_name | 删除标签 |
git tag push origin :refs/tags/tag_name | 将本地删除的标签推送到远程(即删除远程标签) |
git push origin tag_name | 将标签推送到远程 |
git push origin --tags | 推送所有未推送的本地标签到远程 |
其它 | |
git check-ignore -v file | 检查文件是否被忽略 |
git config --global alias.xx yy | 配置yy命令的别名为xx |
配置git lg为各种git log附加效果的别名: git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
分支管理策略
常设分支:master(版本发布)、dev(日常开发)
临时分支:feature(功能分支)、fixbug(bug分支)、release(预发布分支)
分支管理应该保持脉络和演进清晰,常设的分支建议只有master和dev,临时分支使用完后应该删除。
master
主分支:git仓库中有且仅有一个主分支,正式版本永远只从主分支发布,禁止在主分支直接修改代码
dev
开发分支:所有的开发都在dev分支进行,需要发布版本时,将dev分支合并到master分支
feature-*
功能分支:为了开发某种功能,从dev分支分出来,完成后合并入dev分支
fixbug-*
bug分支:出现bug时,从master分支分出来,修复以后合并到dev分支和master分支
release-*
预发布分支:发布正式版之前(dev合并到master之前),预发布一个版本测试,预发布结束后,必须合并进dev和master分支
参考教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
http://blog.jobbole.com/23398/
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
转载于:https://blog.51cto.com/aioria/1899316
git使用指南及分支管理策略相关推荐
- Git 企业中常用分支管理策略
Git 企业中常用分支管理策略 一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它 ...
- Git 分支管理策略
分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其 ...
- 【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略
一.以普通模式合并(--no-ff) 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,啥?不记得啦?那等会我们学习完给你再举个栗子吧,看看这个f ...
- git master主分支_Git分支管理策略及简单操作
前几天整理了一下之前项目的开发代码,当时使用了Git来进行代码版本管理.虽然本人熟悉常用的Git操作,但是对分支的管理经验非常欠缺.拿这个项目来说,在项目中有不下20个分支,每个分支间的继承关系相当之 ...
- git 分支管理策略 与 物理实现 --author by阮一峰 小鱼
-------------------------下面是阮一峰博士的git branch 逻辑结构图示---------------------------------------------- 如果 ...
- Git学习系列(六)解决分支冲突及分支管理策略
2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...
- Git进阶(五):git 分支管理策略
文章目录 一.企业级项目分支策略 1.1 主分支 master 1.2 开发分支 develop 1.3 功能分支 feature 1.4 预发布分支 release 1.5 bug 分支 fixbu ...
- Git学习笔记:分支管理(2)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git 最佳实践:分支管理
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...
最新文章
- Ubuntu ssh 服务开启方法
- u-boot移植第一弹——制作可用的BL1
- Retroifit原理
- linux-文件与目录权限-0913
- 如何接受上级指令_与上级沟通的技巧
- C#调用js,js调用C#
- IE无法正常显示中文名图片
- css02基本选择器
- 让go语言调用外部程序时支持管道符
- comsol3.5安装教程
- python优化网站_小旋风网站优化 - 致力于Python高品质站群系统的产品研发
- word 任意页设置开始页码
- Orthogonal greedy algorithm降维
- 运算放大器---转换速率(slew rate)
- 人物动作姿势怎么画?
- 九连环课程设计c语言,用C语言编程解九连环
- centos使用技巧
- MAC修改主机名、计算机名
- AI杀入影视圈:算法再造李佳琦,中戏开招AI博士
- G. Good Key, Bad Key(暴力)