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使用指南及分支管理策略相关推荐

  1. Git 企业中常用分支管理策略

    Git 企业中常用分支管理策略 一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它 ...

  2. Git 分支管理策略

    分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其 ...

  3. 【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略

    一.以普通模式合并(--no-ff) 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,啥?不记得啦?那等会我们学习完给你再举个栗子吧,看看这个f ...

  4. git master主分支_Git分支管理策略及简单操作

    前几天整理了一下之前项目的开发代码,当时使用了Git来进行代码版本管理.虽然本人熟悉常用的Git操作,但是对分支的管理经验非常欠缺.拿这个项目来说,在项目中有不下20个分支,每个分支间的继承关系相当之 ...

  5. git 分支管理策略 与 物理实现 --author by阮一峰 小鱼

    -------------------------下面是阮一峰博士的git branch 逻辑结构图示---------------------------------------------- 如果 ...

  6. Git学习系列(六)解决分支冲突及分支管理策略

    2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...

  7. Git进阶(五):git 分支管理策略

    文章目录 一.企业级项目分支策略 1.1 主分支 master 1.2 开发分支 develop 1.3 功能分支 feature 1.4 预发布分支 release 1.5 bug 分支 fixbu ...

  8. Git学习笔记:分支管理(2)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. Git 最佳实践:分支管理

    5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...

最新文章

  1. Ubuntu ssh 服务开启方法
  2. u-boot移植第一弹——制作可用的BL1
  3. Retroifit原理
  4. linux-文件与目录权限-0913
  5. 如何接受上级指令_与上级沟通的技巧
  6. C#调用js,js调用C#
  7. IE无法正常显示中文名图片
  8. css02基本选择器
  9. 让go语言调用外部程序时支持管道符
  10. comsol3.5安装教程
  11. python优化网站_小旋风网站优化 - 致力于Python高品质站群系统的产品研发
  12. word 任意页设置开始页码
  13. Orthogonal greedy algorithm降维
  14. 运算放大器---转换速率(slew rate)
  15. 人物动作姿势怎么画?
  16. 九连环课程设计c语言,用C语言编程解九连环
  17. centos使用技巧
  18. MAC修改主机名、计算机名
  19. AI杀入影视圈:算法再造李佳琦,中戏开招AI博士
  20. G. Good Key, Bad Key(暴力)

热门文章

  1. AppStore 提供的App信息查询的WebService
  2. Unity The Type Matching Rule
  3. Struts2与Webwork2的区别
  4. Confluence 6 服务器硬件要求指南
  5. RPC协议之争和选型要点
  6. semantic-ui-react图像组件不显示图像的问题
  7. redis bind连不上的坑
  8. MD5算法了解(JAVA实现)
  9. 时间戳转化为时间格式 时间格式转为时间戳
  10. 【2014】【辛星】【php】【秋季】【2】第一个php程序