赞
踩
什么是版本控制工具?
是一个实现代码版本管理的软件。
作用?
①放置代码丢失
②团队协作
③版本还原
④帮助开发减轻压力
svn 集中式版本控制
git 分布式版本控制
2、git 版本控制工具
what 分布式 代码的版本控制工具
why
①运行速度快
②支持离线工作
③可靠
④自由
how 命令行、图形化
3、git与github的关系
git是版本控制工具
github 是一个托管开源项目的网站,采用git进行代码管理的版本控制方式
4、git命令
例子:在本地创建一个文件夹,初始化本地仓库,在文件夹中新建一个test.txt,通过git指令,将当期这个文件夹中的所有文件 上传到github。
①注册账号
https://github.com/
signUp去注册
输入用户名以及邮箱、密码
第二步 只需要点击continue
第三步 skip this step
验证邮箱
start a project
只需要填写一个Repository name:test
create repository
②安装git这个软件
一路next,最后finish
到开始种,到程序里找到git bash去启动
③linux常用指令
pwd:print the working directory 显示当前的工作目录
ls: list 列出当期目录下所有的文件
clear 清空当前屏幕中的信息
mkdir: 创建文件夹
mkdir web000在当前目录下创建一个叫做web1610的文件夹
cd:change directory 进入目录
cd web000
touch :在当前目录创建一个文件
touch test.txt
cat : 查看指定文件中的内容
④git中常用指令
git init 初始化一个本地仓库
git status 查看当前仓库的状态
git add test.txt 将test.txt文件添加到代码仓库中
配置用户名和邮箱
git config --global user.name 'web1610'
git config --global user.email 'web1610@vip.163.com'
git commit -m "首次提交代码" 需要有github用户名
git remote add origin https://github.com/web1610/test.git 添加githuburl为代码要推送的地址
git push origin master 将代码上传到origin所对应的master分支
需要输入github账号的用户名和密码
(在新的公司是Git和Token一起用的,安装git和secureCRT,登录到Token上,执行命令行,因为是连接到同事的电脑和Token进行开发,用到的命令行有:
cd 文件夹名
cd .. :返回上一级目录
ls
sh build.sh ~/odp
git pull
sh build_all.sh ~/odp
)
切换到一个分支.
之前用的版本控制软件是SVN到了新的公司才用到Git,以下是他们之间的五点区别:
1.GIT是分布式的,SVN是集成式的:
这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的。但GIT在这方面做的更好,而且有更多强大的功能特征。
GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。
同样,这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。GitHub.com就是一个这样的优秀案例。
2.GIT把内容按元数据方式存储,而SVN是按文件:
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
3.GIT分支和SVN的分支不同:
分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。感谢Ben同学指出这个特征。所以,经常会发生有些分支被遗漏的情况。
然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
4.GIT没有一个全局的版本号,而SVN有:
目前为止这是跟SVN相比GIT缺少的最大的一个特征。你也知道,SVN的版本号实际是任何一个相应时间的源代码快照。我认为它是从CVS进化到SVN的最大的一个突破。因为GIT和SVN从概念上就不同,我不知道GIT里是什么特征与之对应。如果你有任何的线索,请在评论里奉献出来与大家共享。
更新:有些读者指出,我们可以使用GIT的SHA-1来唯一的标识一个代码快照。这个并不能完全的代替SVN里容易阅读的数字版本号。但,用途应该是相同的。
5.GIT的内容完整性要优于SVN:
GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。这里有一个很好的关于GIT内容完整性的讨论 –http://stackoverflow.com/questions/964331/git-file-integrity
在新的公司是Git和Token一起用的,安装git和secureCRT,登录到Token上,执行命令行
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。