您的位置:首页 > 其它

Git笔记

2017-03-27 18:30 92 查看
(1)Git是什么?

Git是一款免费、开源的分布式版本控制系统,跟svn同级概念,是一个版本管理工具


(2)为什么要用Git?

1. 去中心化

这个应该就是楼主所说的分布式。Git是没有中心服务器的,每个人机器上都是一个完整的库,我们平时开发代码时的中央服务器其实和我们自己机器上的库内容是完全一样的(格式有点不同,是bare的)。虽然平时大家都是将代码提交到中央服务器上再统一pull别人的代码,但实际情况你可以总是pull张三的库,然后push给李四等等操作。

个人认为去中心化是Git(也包括其他分布式VCS)最伟大的改变。去中心化意味着没有权威、没有主力,所有人都是平等的。这概念本身看起来好像没什么,但实际对社区影响是巨大的,去看看 http://github.com 上的fork功能,你可以fork任何一个你喜欢的项目,接着按自己的喜好修改成自己的项目,或是发起pull request请原作者merge你的功能到他们项目里去(这同样也得益于Git另一项与SVN很大不同的功能——分支策略),而且大多数开源项目都会鼓励你去fork它们。这里面没有权威,没有主从,所有人只要有兴趣都可以在其他人的基础上去构建更强大或是更有领域针对性的项目。大家不是为了开发某个项目而来,而是为了贡献更强的功能给社区,这样最终的项目将是整个社区所有人共同努力的结果,将生生世世繁衍不息。

当然,去中心化也可能会引发一些问题,比如Linux的各种发行版本有时候让人难以抉择,但相信市场之手会帮我们做出选择。

本地提交

本地提交好处主要有3点:

1) 断网提交

2) 小步提交。可以对自己的阶段成果有跟踪,并且提高每次变更的安全性

3) 本地库。这个和断网提交是同一个实现,但从需求角度出发则略有不同,主要是说即使只有自己一个人开发项目,也可以轻易的让自己的代码有版本跟踪,而不需要去费力建个什么svn server

4) 本地回滚。这个其实是由于本地库的存在而产生的,但可以减少中央库上的冗余版本

分支策略

分支策略从技术上来讲是将版本节点化了,即最终的版本状态是树状的。从结果上来讲既是弱化了分支,也是强化了分支。弱化的是分支的概念,强化的是分支的功能。

在Git实际开发中分支的分离和merge是属于日常操作,开启和合并分支成本相比SVN要小得多:SVN是复制一份代码到分支目录,Git则是在分支点做一下标记。随便一次冲突就会自动产生分支,所以大家每天都在与分支打交道。这便是弱化了分支的概念,由于分支成本很小,因此使得按功能分支的开发模式(每个分支一个功能,开发完了再merge到主干)变得非常简单,大家可以完全不需要再因为担心SCM成本太高而选用主干开发模式(所有功能都在主干上开发,到了发版本前再分离出分支)。

当然Git还有很多其他不错的地方,比如Tag策略(和分支策略一样,做个标记,不像SVN要复制一份过去),下载时会压缩以加快速度,各类提示非常到位

(4)Git基本操作

git 命令安装

git 配置

1.git config –global user.name “xxx”

2.git config –global user.email xxx@qq.com

git本地仓库建立

git init

git获取项目

git clone http://xxxx项目地址

git 创建本地分支

git branch local_name

git checkout local_name

git提交:status,diff,add,commit,pull,push

git rm –cached 移除跟踪

diff –stat

因为没有commit而不能做些操作,可以这样git stash 你想要的操作完成后然后在git stash pop
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  版本控制系统 svn git