GIT与Github
作者:互联网
Github(代码仓库) :
是什么 :
1 : 协作开发 2 : 托管
是一个面向开源及私有软件项目的托管平台,只支持git作为唯一的版本库格式进行托管,故名 gitHub,除了git代码仓库托管及基本的Web管理界面外,还提供订阅、文本渲染、在线文件编辑 器、协作图谱(报表)、代码片段分享(Gist)等功能,托管版本数量很多,有知名的开源项目 Ruby onRaits、JQuery、python
基本概念 :
仓库 :
一个项目需要一个仓库,有私有(收费)和公共的(不收费但是需要共享)
收藏 :
可以收藏别人的项目,别人也可以收藏自己的项目
复制/克隆(Fork) :
Fork(分叉),在GitHub开源了项目,别人点击fork就是使用你的项目,本质上就是在原有基 础上新建一个分支别人在项目的基础上修改但不影响你原有项目的代码和结构
发起请求(Pull Request)
基于Fork的操作,别人使用你的项目,在原有基础上修改就可以发出请求到你这里,你看到请 求后感觉满意之后可以同意他的请求,并将他的改进的地方和原有项目合并
关注(Watch) :
观察 : 当观察了某个人的项目,当他在项目做出改变时你就会接收通知
事务卡片(lssue) :
发现项目的bug,没有解决方法
GIT :
GIT与GitHub的联系 :
git : 是软件,可以在本地建立仓库,可以存储各个版本的代码
github : 网上仓库,可以存储各个版本的代码,其核心部分版本控制是用Git处理的
GIT :
是什么 : 本控制系统,有效、高速的处理从很小到非常大的项目版本管理
特点 :
1 : 是世界上最先进的分布式版本控制系统
2 : 版本库都是平等的,可以在任意一个版本库的克隆来创建自己的版本库
本库作为源提供他人
3 : 每一次的提取操作,都是对代码仓库的完整备份
4 : 提交在本地完成,无需别人授权.并且每次提交都会成功
5 : 提交不会被打断,PUSH给别人或者别人PULL你的版本库,合并发生在PULL和
PUSH过程中,不会自动解决的冲突会提示你手工完成
缺点 : 1 : 没有严格的权限管理控制,一般通过设置文件读写权限的方式来做权限控制
2 : 工作目录只能是整个项目,比如checkout,建立分支,基于整个项目的
而SVN可以基于目的某一个目录
GIT与SVN特点 :
git是世界上最先进的分布式版本控制系统,GIT和SVN有自己的集中式版本库或服务器
GIT更倾向于使用分布式模式,开发人员从中心版本库/服务器上chect out代码后会在自己
机器上克隆一个一样的本地版本库,就算没有网络也是能提交文件、查看log(历史版本记录)
、创建项目分支等
Git和SVN的主要差别 :
GIt只关心文件数据的整wwixing体是否发生变化,而Git不保存前后变化的差异数据,更像是把变化 的文件作快照后记录在微型的文件系统中,每次提交更新时会纵览所有文件的指纹信息并对文件作一 快照,保存一个指向这快照的索引,为提高性能,若文件没有变化不会再次保存,对上次保存的快照作 一链接
GIT大多数操作只需要访问本地文件和资源,不用联网就可以查看历史版本记录
SVN这类版本控制系统只关心文件内容的具体差异,每次记录有哪些文件作了更新,或哪一行更新了
SVN在每一次提交时都将更新的详细信息分析并提交
分支 :
SVN : 在这类版本控制系统上,分支(branch)是完整的目录,且这个目录拥有完整的实际文件,如 果想要开启新的分支,那将影响全部人,改动一个分支,需要让其他人重新切分支重新下载
Git : 每个工作成员可以任意在自己的本地版本库开启无限个分支,在这个分支上做出任何修改都 不影响到其他工作人员除非合并
当开发一个网站的时候已经在主分支上开发出来,需要开发新功能模块,那就需要创建新分支,好处是当新 分支有bug时最多就是删除新分支,再创建一个分支
当需要切换到主分支时,会保存当前分支的状态去处理主分支的问题,在处理主分支问题时可以创建一个 新分支来测试,再将新分支合并到主分支里
GiT与GITHub远程仓库操作 :
使用远程仓库的目的 : 备份、实现代码共享、代码的集中化管理
GIT小命令 : 基本的命令和虚拟机里差不多
用户名 : git config --global user.name “用户名” 就是gitHub的用户名
邮箱 : git config --global user.email “邮箱号”
查看配置信息 : git config --list
创建文件夹(仓库) :mkdir 文件夹名字 /通过初始化仓库变成Git可以管理的仓库
初始化仓库 : git init
提交到暂存区的文件 : git add file(文件)
提交到仓库 : git commit -m “随便写成功了保存到日志”
查看仓库的状态 : git status
查看修改过什么内容 : git diff
查看日志 : git log
记录每一次的命令 : git reflog(回退版本ID找不到时用)
版本回退 : git reset --hard HEAD(一个就是回退上一个版本n个写(^~n))
回退到指定版本 : git reset --hard (commit ID在git log里面找到就能回退)
!!! 如果没有推送到远程版本库还有方法可以回撤修改的内容和区域 !!!
(checkout回撤 : 不能回撤没有add到暂存区的文件 | 可以将提交到仓库的文件修改后回撤 | 可以 将删除的文件回撤,但是不法回撤到暂存区)
回撤修改过的文件 : git checkout – file(文件名)
(reset HEAD回撤 : 只能将文件从暂存区回测到工作区 | 或者从仓库回撤到工作区,修改过的内容不 发回测,删除的文件不能回撤)
回撤修改过的文件 : git reset HEAD file(文件名)
从git删除 : git rm 文件名 (使用后无法回撤)
分支小命令 :
创建分支 : git branch (分支名)
创建分支同时切换 : git checkout -b (分支名)
查看当前分支 : git branch 当前分支前加*号
切换分支 : git checkout (分支名)
合并分支 : git merge (分支名)
删除分支 : git branch -d dev
挂起分支 : git stash
查看分支的储藏 : git stash list
挂起后恢复 : git stash apply 需要使用git stash drop删除 stach内容
挂起后恢复并删除 : git stash pop
标签:文件,git,仓库,GIT,版本,Github,回撤,分支 来源: https://blog.csdn.net/khjkhoih/article/details/115647999