Git是个好工具(转)
2015-12-13 12:14
316 查看
Git是分布式版本控制系统,我们常用的版本控制工具还有SVN。这里就得区分下什么是分布式版本控制系统,什么是集中化的版本控制系统。
[b]集中化的版本控制系统[/b]
集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
优点:
1. 每个人可以看到别人做了什么
2. 管理员管理权限也比较简单
缺点:
依赖中央服务器,存在单点故障的风险。
1. 中央服务器宕机后,都无法协同工作
2. 如果中央服务器的文件损毁,又没有备份时,丢失的数据无法找回
[b]分布式版本控制系统[/b]
分布式版本控制系统( Distributed Version Control System,简称 DVCS )。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
优点: 1. 适合分布式开发,强调个体
PS:允许支持上千个并行开发的分支 2. 公共服务器压力和数据量都不会太大 3. 速度快、灵活
PS:特别在打分支和打Tag时候 4. 任意两个开发者之间可以很容易的解决冲突 5. 离线工作
PS:本地仓库
缺点: 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
[b]分支[/b]
Git最关键地方即是分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。如果要了解Git,这个是最重要的,可以查看下面学习资料。
[b]学习资源[/b]
这一篇文章纯粹只是记录一些东西,并不会讲Git的工作原理、怎么用,因为资料已经非常完善了,使用到时查看即可。
1. 廖雪峰Git教程(中文)
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
2. 图解Git/图形化的Git参考手册(了解原理非常有用)
http://blog.jobbole.com/22647/
3. Git官方教程(英文)
http://git-scm.com/blog
4. Git - 生成 SSH 公钥
https://git-scm.com/book/zh/v1/服务器上的-Git-生成-SSH-公钥
[b]下载Git[/b]
1. window git安装包
https://git-for-windows.github.io/
2. mac
Git安装工具:http://sourceforge.net/projects/git-osx-installer/
通过Xcode安装:Xcode->Preferences->Downloads,选择“Command Line Tools”
[b]Eclipse Git[/b]
我是个懒人,不喜欢打命令去操作Git,可视化操作才是我想要的,所以就找了在Eclipse上使用Git方法。
1. Eclipse上安装GIT插件EGit及使用
http://yufenfei.iteye.com/blog/1750124/
2. 解决eclipse中egit中的cannot open git-upload-pack问题
http://www.xuebuyuan.com/1587775.html
[b]总结[/b]
使用什么版本控制工具,无论是集中式或分布式,没有谁绝对取代谁,存在都是原因的,各有各自的适用场景。
[b]附录[/b]
下面记录一些命令,来源于培训教程 创建Git仓库 初始化Git仓库
配置用户信息
添加文件 创建一个文件
查看仓库当前状态
添加文件到暂存区
提交暂存区文件到仓库
提交修改 将修改添加到暂存区
将暂存区中的修改提交到仓库
撤销 撤销add到暂存区的操作
撤销对文件所做的修改
将暂存区中的修改提交到仓库
版本回滚 查看提交历史记录
回到上次的提交
返回最近的提交
链接到远程仓库 添加远程仓库
提交代码到本地仓库
将本地的master分支推送到远程的origin分支,并与之建立连接
在分支上提交、合并分支 修改若干文件,提交
切换回master分支
合并分支
删除分支
有冲突的合并 新建一个分支并切换到它
合并分支
若没有发生冲突则会自动生成一个提交若发生冲突,则需要手动解决冲突,再提交
打标签 创建标签
查看标签
删除标签
把标签推送到远程
本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
本文地址 :/article/5232760.html
[b]集中化的版本控制系统[/b]
集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
优点:
1. 每个人可以看到别人做了什么
2. 管理员管理权限也比较简单
缺点:
依赖中央服务器,存在单点故障的风险。
1. 中央服务器宕机后,都无法协同工作
2. 如果中央服务器的文件损毁,又没有备份时,丢失的数据无法找回
[b]分布式版本控制系统[/b]
分布式版本控制系统( Distributed Version Control System,简称 DVCS )。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
优点: 1. 适合分布式开发,强调个体
PS:允许支持上千个并行开发的分支 2. 公共服务器压力和数据量都不会太大 3. 速度快、灵活
PS:特别在打分支和打Tag时候 4. 任意两个开发者之间可以很容易的解决冲突 5. 离线工作
PS:本地仓库
缺点: 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
[b]分支[/b]
Git最关键地方即是分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。如果要了解Git,这个是最重要的,可以查看下面学习资料。
[b]学习资源[/b]
这一篇文章纯粹只是记录一些东西,并不会讲Git的工作原理、怎么用,因为资料已经非常完善了,使用到时查看即可。
1. 廖雪峰Git教程(中文)
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
2. 图解Git/图形化的Git参考手册(了解原理非常有用)
http://blog.jobbole.com/22647/
3. Git官方教程(英文)
http://git-scm.com/blog
4. Git - 生成 SSH 公钥
https://git-scm.com/book/zh/v1/服务器上的-Git-生成-SSH-公钥
[b]下载Git[/b]
1. window git安装包
https://git-for-windows.github.io/
2. mac
Git安装工具:http://sourceforge.net/projects/git-osx-installer/
通过Xcode安装:Xcode->Preferences->Downloads,选择“Command Line Tools”
[b]Eclipse Git[/b]
我是个懒人,不喜欢打命令去操作Git,可视化操作才是我想要的,所以就找了在Eclipse上使用Git方法。
1. Eclipse上安装GIT插件EGit及使用
http://yufenfei.iteye.com/blog/1750124/
2. 解决eclipse中egit中的cannot open git-upload-pack问题
http://www.xuebuyuan.com/1587775.html
[b]总结[/b]
使用什么版本控制工具,无论是集中式或分布式,没有谁绝对取代谁,存在都是原因的,各有各自的适用场景。
[b]附录[/b]
下面记录一些命令,来源于培训教程 创建Git仓库 初始化Git仓库
$ git init
配置用户信息
$ git config user.name 'someGuy' $ git config user.email 'someGuy@bingo.com'
添加文件 创建一个文件
$ touch README.md
查看仓库当前状态
$ git status
添加文件到暂存区
$ git add .
提交暂存区文件到仓库
$ git commit -m 'add README.md file'
提交修改 将修改添加到暂存区
$ git add README.md
将暂存区中的修改提交到仓库
$ git commit -m 'edit README.md'
撤销 撤销add到暂存区的操作
$ git reset HEAD README.md
撤销对文件所做的修改
$ git checkout — README.md
将暂存区中的修改提交到仓库
$ git commit -m 'edit README.md'
版本回滚 查看提交历史记录
$ git log
回到上次的提交
$ git reset --hard README.md
返回最近的提交
$ git reset --hard 0ff9
链接到远程仓库 添加远程仓库
$ git remote add origin git@git.bingosoft.net:gongke/GitLession.git
提交代码到本地仓库
$ git commit -a -m '将要提交到远程'
将本地的master分支推送到远程的origin分支,并与之建立连接
$ git push -u origin master
在分支上提交、合并分支 修改若干文件,提交
$ git commit
切换回master分支
$ git checkout master
合并分支
$ git merge dev
删除分支
$ git branch -d dev
有冲突的合并 新建一个分支并切换到它
$ git checkout -b new_feature
合并分支
$ git merge new_feature
若没有发生冲突则会自动生成一个提交若发生冲突,则需要手动解决冲突,再提交
$ git add conflict_filegit commit - m 'conflict solved'
打标签 创建标签
git tag v1.0 git tag -a v1.1 -m '1.1 released!'
查看标签
git tag
删除标签
git tag -d v1.0
把标签推送到远程
git push --tag
本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
本文地址 :/article/5232760.html
相关文章推荐
- nginx编译安装与apache动静分离共存设置及负载均衡设置
- 杭电OJ 4198(广搜+优先队列~)图搜.Quick out of the Harbour
- [leetcode] 132. Palindrome Partitioning II 解题报告
- nagios二次开发(五岁以下儿童)---nagios和nagiosql关系
- 源码编译安装 MySQL 5.5.x 实践(转)
- PostgreSQL学习手册(角色和权限)
- JavaScript:验证input[type=‘text’]输入框动态数据
- FragmentDialog设置进入和退出动画
- Tomcat源码学习(一)
- Scala 函数柯里化
- 基于百度地图的定位实现天气预报查询
- 设计模式 分类 总概括
- Web前端技能
- 滚动视图 解决弹出键盘遮住输入框的问题 实例解析
- unity开发相关环境(vs、MonoDevelop)windows平台编码问题
- 关于vs中scanf函数的一点说明
- How Classes are Found
- 第一次玩php程序
- JAVA 函数式接口与c#委托对应关系(一)
- 性格对咱的影响