




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
源代码管理工具
Git王顺子
简介什么是git?git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的git的起源作者是Linux之父:LinusBenedictTorvalds当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)git的现状在国外已经非常普及,国内并未普及(在慢慢普及)越来越多的开源项目已经转移到git其他版本控制工具CVS最早的开源、免费的集中式版本控制工具自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制工具ClearCase收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多VSS微软的集中式版本控制工具,集成在Visual
Studio中集中式版本控制分布式版本控制git和SVN的简单对比速度在很多情况下,git的速度远远比SVN快结构SVN是集中式管理,git是分布式管理其他SVN使用分支比较笨拙,git可以轻松拥有无限个分支SVN必须联网才能正常工作,git支持本地版本控制工作旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.gitSVN的工作流程git的工作流程分布式和集中式的最大区别在于:在分布式下开发者可以本地提交每个开发者机器上都有一个服务器的数据库工作原理如果想了解git的工作原理,有几个核心概念必须知道工作区(Working
Directory):仓库文件夹里除.git目录以外的内容版本库(Repository):.git目录,用于存储记录版本信息暂缓区(stage)分支(master):git自动创建的第一个分支HEAD指针:用于指向当前分支git
add和git
commit的原理gitadd:把文件修改添加到暂存区gitcommit
:把暂存区的所有内容提交到当前分支工作原理工作原理工作原理Git使用环境多人开发时需要一个共享版本库,单人开发初始化一个本地库即可共享版本库的形式:本地共享库:文件夹/U盘/硬盘远程共享库:自己搭建git服务器/托管到第三方平台(例如github,oschina)无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用gitSourceTree下载地址:GitHub下载地址:不过它是专门为GitHub网站而设计的Xcode
虽然集成较好,但是只能做一些常用的简单操作,复杂操作还要使用命令行git常用指令git
help
:git指令帮助手册查看其他指令的做法:git
help其他指令git
init
:初始化本地仓库git
config
:git的配置信息相关(修改的是.git/config文件)配置用户名:git
config
用户名(用于跟踪修改记录)配置邮箱:git
config
user.email邮箱(用于多人开发间的沟通)查看配置信息:git
config
–l编辑配置信息:git
config
–e(用vim编辑,:wq是退出vim编辑器)设置指令的别名:gitconfigalias.别名
原指令名称设置带参数指令的别名:gitconfigalias.别名“原指令名称参数”将此设置应用到整个系统中:gitconfig––gloabalgit常用指令git
status
:查文件的状态查看某个文件的状态:git
status文件名查看当前路径所有文件的状态:git
statusgit
log
:查看文件的修改日志查看某个文件的修改日志:git
log文件名查看当前路径所有文件的修改日志:git
log用一行的方式查看简单的日志信息:git
log
––pretty=oneline查看最近的N次修改:git
log
–N(N是一个整数)git
diff
:查看文件最新改动的地方查看某个文件的最新改动的地方:git
diff文件名查看当前路径所有文件最新改动的地方:git
diffgit常用指令git
init
:初始化一个空的本地仓库,生成一个.git目录,用于维护版本信息在当前路径初始化仓库:git
init在其他路径初始化仓库:git
init仓库路径git
add
:将工作区的文件保存到暂缓区保存某个文件到暂缓区:git
add文件名保存当前路径的所有文件到暂缓区:git
add
.(注意,最后是一个点.
)git
commit
:将暂缓区的文件提交到当前分支提交某个文件到分支:gitcommit-m”注释”文件名保存当前路径的所有文件到分支:gitcommit-m”注释”git常用指令git
reset
:版本回退(建议加上––hard参数,git支持无限次后悔)回退到上一个版本:git
reset
––hard
HEAD^回退到上上一个版本:git
reset
––hard
HEAD^^回退到上N个版本:git
reset
––hard
HEAD~N(N是一个整数)回退到任意一个版本:git
reset
––hard版本号(版本号用7位即可)git
reflog
:查看指令使用记录(能够查看所有的版本号)git
rm:删除文件(删完之后要进行commit操作,才能同步到版本库)git常用指令git
clone:下载远程仓库到本地下载远程仓库到当前路径:git
clone仓库的URL下载远程仓库到特定路径:git
clone仓库的URL存放仓库的路径git
pull:下载远程仓库的最新信息到本地仓库git
push:将本地的仓库信息推送到远程仓库远程仓库如果是多人团队开发,最好还是搭建一个远程仓库搭建远程仓库的途径自己搭建一个git服务器:费时费力在GitHub上托管项目:公开项目免费、私有项目收费,很多第三方开源项目在oschina上托管项目:完全免费,在国内访问速度快(推荐使用)搭建GitHub远程仓库–配置SSH
Key注册一个GitHub帐号:打开“AccountSettings”点击“SSHkeys”配置Mac的SSHKey的公钥(用于限制提交)搭建GitHub远程仓库–配置SSH
Key查看ssh版本$ssh–v打开终端,$ssh-keygen一路enter下。在Mac上生成SSH
Key(在终端输入下面指令)cd~/.sshssh-keygen-trsa-C"你的邮箱地址”然后一直敲回车然后就会在~/.ssh目录下生成SSK
Key的秘钥对id_rsa:私钥,不可泄露id_rsa.pub:公钥,可以公开(将这个文件的内容粘贴到GitHub上)利用cat指令可以查看文件的内容catid_rsa.pub搭建GitHub远程仓库–添加仓库搭建GitHub远程仓库–添加仓库拷贝仓库地址,用于下载到本地搭建GitHub远程仓库–删除仓库如果想删除仓库,也很简单搭建oschina远程仓库–创建仓库注册一个oschina帐号:搭建oschina远程仓库–仓库地址搭建oschina远程仓库–创建仓库添加项目组成员随后需要在终端设置git的邮箱和用户名,不然没有访问仓库的权限搭建oschina远程仓库–删除仓库备份版本本地版本库Master分支开发中..V1.0完成v1.0V2.0开发…共享版本库master分支V1.0完成v1.00>提交v1.0版本到共享库git
push1>打标签,备份v1.0版本git
tag
–a
v1.0
–m
“标记v1.0版本”2>上传标签到共享版本库git
push
origin
v1.0备份版本解决Bug-1经理本地Master分支开发中..V1.0完成v1.0共享库Master分支V1.0完成v1.0V2.0..牛大本地V1.0fixbug分支牛大本地Master分支V1.0完成v1.0V2.0..V2.0..V1.0完成v1.0V1.0修复bugV1.1V1.1V1.0完成v1.0V1.0修复bugV1.1共享库V1.0fixbug分支1>打标记:
gittag-av1.0-m“备份1.0版本2>提交到远程服务器:
gitpushoriginv1.03>克隆项目到牛大:
git
clone4>根据v1.0版本新建分支v1.0fixbug
gitcheckoutv1.0-bv1.0fixbug5>打标签备份v1.1
git
tag
–a
v1.1
–m
“标记v1.1版本”6>上传标签到共享库
git
push
origin
v1.17>上传分支到共享库
git
push
origin
v1.0fixbug备份版本解决Bug-2经理本地Master分支开发中..V1.0完成v1.0共享库Master分支V1.0完成v1.0V2.0..V2.0..V1.1V1.0完成v1.0V1.0修复bugV1.1共享库V1.0fixbug分支1>更新本地master分支git
pull3>合并分支后,提交到本地库并上传到共享版本库2>合并远程v1.0fixbug分支到本地master分支gitmergeorigin/v1.0fixbug-m“合并分支”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腾退场地协议书
- 洗浴服务员合同协议书
- 湖北省农贸市场协议书
- 贷款打折协议书
- 美国将签协议书
- 组织参赛协议书
- 工程现场管理员协议书
- 确权分割协议书
- 抵押车合伙经营协议书
- 资金转赠协议书
- 北京市通州区2023-2024学年七年级下学期期末数学试题(无答案)
- 2024年江苏省南京市玄武区玄武外国语学校八年级下学期物理期末模拟卷1
- 河砂、碎石组织供应、运输、售后服务方案
- 免疫学实验技术智慧树知到期末考试答案章节答案2024年哈尔滨医科大学大庆校区
- 《城轨通信信号基础设备应》课件-FTGS轨道电路
- 浙江省宁波市镇海区人教PEP版2022年小学毕业考试英语试卷【含答案】
- 中班语言《伞》课件
- 心悸-《中医内科学》教案
- 营区物业服务营区物业服务保密措施
- 托槽粘结医学课件
- 蓝晒创作方案
评论
0/150
提交评论