软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 研发管理 -> git入门 -> 正文阅读
研发管理 最新文章
拉格朗日乘数
maven之可视化项目依赖(Visualizingdepend
mac效率工具
Atitit.css规范bem项目中CSS的组织和管理
git入门
Asimplemodelfordescribingbasicsourcesofp
Linux进程管理浅析
我的openwrt学习笔记(十九):linux便捷开
2、微控制器选择
Git使用手册:为Git仓库创建Submodule

[研发管理]git入门

  2016-04-02 21:01:26

资料总结     参见<android开发进阶  从小工到专家> 作者 :何红辉


git起源
    用于管理开源项目'linux',  作者 'linus'  . 开发时长 '两周' (第一版) . 2005

第一版git的设计特性
  •  速度
  •  简单的设计
  •  对非线性开发模式的强力支持
  •  完全分布式
  •  有能力高线管理类似linux内核一样的超大规模项目

git基本原理
    git只关心文件数据的整体是否变化,它并不保存变化前后的差异数据. git在每次提交更新时,会将项目所有的文件做一个快照,然后在文件系统中保存一个指向这次快照的索引,为提高性能,若文件没有变化,git只会对上次的快照做一链接而不做额外操作.


    git绝大多数操作都在本地执行.和传统CVS访问网络不同,git会将当前项目的历史更新都存储在本地.
    git会时刻保持数据的完整性,在将数据保存到git之前,会进行checksum--使用SHA-1算法,通过对文件的内容或者目录的结果算出一个SHA-1指作为指纹,根据这个值判断数据的变化.所以如果文件在传输是变得不完整或者磁盘损坏导致数据缺失,git能立即察觉


   git文件有3中状态
  1.     committed : 表示文件已经被安全的保存在本地数据库
  2.     modified    : 表示已修改了文件,但是还没有提交保存
  3.     stage          : 表示把已修改的文件放在了提交的表单中,也就是执行了  git add

   git的三种区域 workspace(普通,未做任何git操作)-->staging area(暂存区域或者说表单区域更好理解些)-->git 数据库
    每个项目都有一个git目录(隐藏文件.git),他是git保存元数据和对象数据库的地方. 每次克隆(clone)仓库时,其实复制的就是这个目录里面的数据
    git的工作流程  :  1. 对项目进行修改  2. 对修改后的项目做快照,然后保存到暂存区域.  3.提交更新,将暂存的文件快照永久保存到git目录中


git的基本配置
    git下载后需要进行初始化配置,如果后续需要修改配置内容,使用相同的命令即可,后续配置会覆盖前面
    使用git config工具(安装了git后自带)来读取或者设置相应的工作环境变量. 这些环境变量共有3中,存储在不同地方(作用域不同)
  1. /etc/gitconfig : 针对所有用户, 使用git config 工具是, 用 --system选项设置或读取
  2. ~/.gitconfig : 针对当前用户, 用 --global 选项设置读取
  3. 当前项目下的.git/config : 针对当前项目.

     优先级从小到大,也就是说 项目的优先级最强,用户次之,全局最次
    默认安装git后,git会自动配置工具的环境变量,所以使用cmd命令可以直接操作git config工具,可以在doc中数据git version查看git版本.若提示git无效,则需要额外配置git的path地址
   git配置项 1: 用户信息
   cmd中输入  git config --global user.name "xxxx"
                      git config --global user.email xx@xxx.xxx
   配置完后,你当前用户的git信息就是xxxx了,你可以通过 git config --global user.name/user.email 查看你的配置,如果你想让当前项目有不同配置,进入项目目录后重新执行配置命令,去掉 --global 即可.
   设置git默认的编辑器 : git config --global core.editor emacs
   设置git默认的差异分析工具: git config --global merge.tool vimdiff
   查看现有的git配置  git config --list
   配置高亮效果

  • git config --global color.status auto #查看状态时高亮显示
  • git config --globalcolor.branch auto #分支名高亮
  • git config --global color.ui auto #自动高亮

    使用git别名能有效提高工作效率(就是默认的git 命令重命名)git config --global alias.新名字  原始命令

   如: git config --globalalias.co checkout

   git基本命令的使用
    一,初始化本地仓库  git init
    如果你有项目,在dos中进入这个项目目录,执行 git init ,那么git会在这个目录中创建.git工作目录.并对目录中的内容进行版本控制


   

   , git status  检查本地项目状态  
   刚初始化的时候.git中的数据库中是没有文件快照的,这是你在工作目录中创建一个java文件,再执行 git status,会发现git提示有差异文件为添加到表单

 

   


   三,git add  不多说 ,就是将 差异文件添加到暂存区域  可以看到dos中的使用提示  use 'git add <file> ...'

   使用 git add .   添加所有文件
   使用 git add  <文件名>   添加指定文件

   这时再看git status 

   既然有add  那么相对应的remove也有吧.  看上图  git rm --chched <file>  就是将表单中的文件移除

  

  四,git commit  提交表单到本地数据库
  两种模式  1. git  commit  -m "<注释>"    2. git commit

  第一种会将引号中的内容作为提交的注释添加到数据库中,用以说明这次提交做了什么
  第二种会打开一个默认的文本编辑器 如vim ,你可以使用编辑器添加复杂的注释
  说明一下,注释支持中文 



  五,git log  查看项目历史版本
  见图

  这个e516xxx 的就是这次提交的指纹了,通过项目结构和文件内容,用SHA-1算出来的
  下面的first commit 就是这次提交的注释
   如果想从注释中提取历史文件

   1.使用 git checkout  e516xxx  <文件名> 即可
   2.使用 reset,但是reset操作不对会移除log信息
   五. git branch  创建分支
   分支等于对项目做一个副本,分支主干互不影响,然后在副本中开发新功能,防止代码混乱或者说新功能影响旧功能.
   具体操作流程  1. 开辟分支  2.切换到分支开发  3.切回主干 4.合并分支 5.删除没用分支
   如图  b就是创建的分支名了

   
 

   创建完分支后,可以执行 git branch  查看枝干列表
,  带星号说明你在这个枝干上.
   git init 后会默认创建一个名为master主干

   六.切换分支  git checkout

   见图 
这里的co 就是前面设置的checkout 的别名,用co就简化了,效果如同
git checkout b.
   执行完这条命令后,版本就从master主干切换到名为b的枝干了,见图: 


   我们在分支中开发项目,如新建了一个Test类,这时如果就算提交到本地,那么主干的版本也是看不到的


  


切回主干




会发现不仅文件没有,log也没有
七.git merge  合并分支

看看合并后的目录,Test出现了



同时log也出现了
注意合并的时候如果同样的代码被多个修改,那么可能会出现冲突,这时候需要手动调节完冲突再重新执行add commit.
最后,新功能开发完了,分支合并了,那么需要删除无用的分支  git branch -d <分支name>, 删除后再看枝干列表

八.git tag版本标签
一般会在正式发布的版本中添加tag标签,以便以后出意外恢复或者检索
语法 git tag -a <tagName> -m "<注释>"
使用git tag 列出所有的tag版本

使用git show 查看tag的详细信息
,git show也能用于查看分支



使用 git tag -d <tagName> 删除tag



九.git push  将本地仓库的记录添加到远程 

git 大部分是在本地的,但是如果多人合作的话,远程仓库必不可少,团队成员可以从远程中clone(第一次)出项目来进行多人开发.
所以在提交完(commit)项目后, 调用gitpush  发布到远程.(当然你得有远程服务器,或者可以使用github)


提一下 git pull / git fetch / git clone 的区别
git clone: 是把整个git项目拷贝下来,包括里面的日志信息,git项目里的分支,你也可以直接切换、使用里面的分支等等
git fetch :从远程获取最新版本到本地,但是不会和本地合并
git pull: = git fetch + git merge  下载最新后再和本地的合并


ok 最后一个 

十.git help  <命令>查看指定命令的帮助文档


简单的过了一遍git , 用于快速入门.









 

上一篇文章      下一篇文章      查看所有文章
2016-04-02 21:01:17  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 人民的名义 人民的名义在线看 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图
中国文化英文 多播视频 装修知识库
2017-4-23 22:00:19
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --