网站社区建设,嘉兴网站排名优化报价,怎么自己做游戏,wordpress商城怎么样目录 1. git简介
1.1 git是什么
1.2 git与svn的区别
2. github
2.1 创建仓库
2.2 删除仓库
2.3 新建文件及文件夹
3. git的基本操作
3.1 配置账户及邮箱
3.2 git文件状态与工作区域
3.3 常用命令
3.4 克隆#xff08;clone#xff09;
3.5 查看git仓库的状态
3.…目录 1. git简介
1.1 git是什么
1.2 git与svn的区别
2. github
2.1 创建仓库
2.2 删除仓库
2.3 新建文件及文件夹
3. git的基本操作
3.1 配置账户及邮箱
3.2 git文件状态与工作区域
3.3 常用命令
3.4 克隆clone
3.5 查看git仓库的状态
3.6 新创建的文件并添加到“暂存区” 3.8“暂存区”的内容提交到“本地仓库”
3.9“本地仓库”的内容提交到“远程仓库”
3.10 将本地项目推入远程仓库。
3.11 冲突的问题 1. git简介 1.1 git是什么 是一个开源的分布式版本控制系统可以有效、高速地处理从很小到非常大的项目版本管理。
git的安装非常简单
到
1.2 git与svn的区别 1 git是分布式的 GIT是分布式的SVN不是这是GIT和其它非分布式的版本控制系统例如SVNCVS等最核心的区别 2git仓库的任何一个拷贝都可以独立作为一个服务器来使用因为git是分布式的在远程仓库和本地仓库中都有完整拷贝。 3在Git中文件有四种状态 未跟踪(untrack)表示文件为新增加的 已修改(modified)表示修改了文件但还没保存到git仓库中。 已暂存(staged)表示对一个已修改文件的当前版本做了标记使之包含在下次提交的快照中 已提交(committed)表示文件已保存在git仓库中。 4 其它 GIT没有一个全局的版本号而SVN有目前为止这是跟SVN相比GIT缺少的最大的一个特征。 GIT的内容完整性要优于SVNGIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性确保在遇到磁盘故障和网络问题时降低对版本库的破坏 5 直接记录快照而非差异 GIT把内容按元数据方式存储而SVN是按文件所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 6 直接记录快照而非差异 GIT分支和SVN的分支不同分支在SVN中一点不特别就是版本库中的另外的一个目录。
前三个不同点重点理解后面几个一般性了解
2. github GitHub是一个面向开源及私有软件项目的托管平台因为只支持git 作为唯一的版本库格式进行托管故名GitHub。 github上repository分为public和privatepublic可以被其他人看到并clone而private是不能被别人看到的。这里把repository创建为private的场景为自己创建一个私人项目但是又需要和其他developer一起开发所以需要developer都能克隆这个private repository并且都能提交到这个private repository。 目前GitHub为微软所有可以免费的创建私有仓库但免费的情况下协助的成员最多为3个。
2.1 创建仓库 首先登陆到github 勘误生成readme.mdmarkdown类型的文件文件而不是readme.txt文件 https和ssh的区别就是前者会需要提供账号密码后者就是通过数字证书的形式免密因为本地有数字证书 创建完成后 2.2 删除仓库 2.3 新建文件及文件夹(一般情况通过命令的方式创建) 3. git的基本操作 3.1 配置账户及邮箱 一般刚安装Git都要配置用户名和邮箱因为你提交代码到本地仓库上传代码到远程仓库时会用到。如果没有没有配置在你提交时它会提醒如果仅仅是下载公有仓库则不需要甚至不需要注册。
成功安装git后在任何目录点击右键选择“git bash here”即可进入git的命令窗口 1查看git的配置信息
git config --list 2设置用户名及邮箱
git config --global user.name username
git config --global user.email email
# 为安全一般不在配置信息中设置密码
git config --global user.password password 注 全局配置 --global 表示全局的即当前用户都有效该配置会出现在 ~/.gitconfig 文件中~表示当前用户的目录 比如C:\Users\Administrator.gitconfig打开该文件你会发现如下图所示的内容 [user] name xxx email xxxqq.com 局部配置 git config user.name username git config user.email email 局部是只对当前仓库起效的它的配置信息会在当前仓库根目录/.git/config文件下。注意局部变量覆盖全局变量 3删除某个全局配置项
git config --global --unset user.name 3.2 git文件状态与工作区域 git的文件状态是其git核心内容了解后对后续的操作有莫大的帮助不同的文件状态又存储在不同的工作区域中.
git中的文件有以下几种状态
未跟踪(untrack)表示文件为新增加的已暂存(staged)表示对一个已修改文件的当前版本做了标记使之包含在下次提交的快照中已提交(committed)表示文件已保存在git仓库中。已修改(modified)表示修改了文件但还没保存到git仓库中。
工作区域 按照本地计算机与远程计算机划分工作区域有以下几种
本地计算机 Working Directory工作目录即正在编辑的文件状态。文件状态为未跟踪untrack和已修改modified在此区域内。 Staging Area暂存区保存了下次将提交的文件列表信息。文件状态为已暂存staged在此区域内。可以使用 git ls-files 查看暂存区的内容。 Repository本地仓库提交到本地仓库的文件。远程计算机 Repository远程仓库已提交到远程计算机内的文件。
理解下图的示意图
3.3 常用命令 pwd 查看当前文件路径 注红色表示没被跟踪 注查看暂存放区文件 注 -u意思就是下次登陆的时候直接git push 不用加-u 注查看远程仓库 注上传到git的流程克隆就是git clone 复制的网站 注获取远程仓库 注查看日志 注git add . 之后从暂存区移除 使用下面代码可以在家回去 注删掉了发现还需要那么就可以 这样恢复 恢复后 3.4 克隆clone 2到本地目录你所要放置项目的目录右击鼠标选择“git bash here”进入git命令行。
git clone https://github.com/lisensir/hello-world.git
如图 注本例演示了通过https协议克隆除了https协议git还支持如下协议 git clone gitgithub.com:fsliurujie/test.git --SSH协议 git clone git://github.com/fsliurujie/test.git --GIT协议 与其他版本控制软件如svn相比这里使用的克隆clone而不是检出checkoutgit 收取的是项目历史的所有数据每一个文件的每一个版本服务器上有的数据克隆之后本地也都有了。实际上即便服务器的磁盘发生故障用任何一个克隆出来的客户端都可以重建服务器上的仓库回到当初克隆时的状态 3.5 查看git仓库的状态 要先来到对应项目的目录。
git status
3.6 新创建的文件并添加到“暂存区” 在git管理的目录如上例中的hello-word目录新建一个文件 可以使用如下命令查看状态
git status 注红色表示没有加入暂存区。
将文件放入“暂存区”
$ git add . 注 后面的那个“.” 所示将所有新增的文件都放入暂存区。 查看git状态 3.8“暂存区”的内容提交到“本地仓库” git commit -m 注释 3.9“本地仓库”的内容提交到“远程仓库” 语法 git push 远程主机名 本地分支名 远程分支名
示例
git push origin master 注 如果省略远程分支名则推入与本地分支同名的远程分支 远程分支一般默认的名称为 origin但不是必须的。 git push -u origin master 注如果带有-u参数则指定了默认的远程主机 这样以后再推入时可以简写为git push。不带任何参数的git push默认只推送当前分支这叫做simple方式。 3.10 将本地项目推入远程仓库。 1在本地创建一个目录 2进入gitdemo目录右击鼠标打开git命令行Git Base Here 3使用git init 初始化git仓库 4在gitdemo目录中添加一个测试文件如abc.txt 5将新增的abc.txt文件加入的本地仓库分两步见下图 6 在github中创建仓库 7本地仓库与远程仓库关联 添加后远程库的名字就是origin这是Git默认的叫法也可以改成别的但是origin这个名字一看就知道是远程库。
8把本地库的所有内容推送到远程库上 3.11 冲突的问题 1粗暴方式
git push -f
会忽略版本不一致等问题强制将本地库上传的远程库会覆盖远程仓库的内容。要谨慎使用 注可以理解为强制提交强行用自己将自己的提交覆盖上去 2温柔方式 使用 git pull 或 git fetch先更新远程仓库内容。处理完合并后再推入远程仓库 注决定好使用谁的提交代码之后删掉就行了 注意思就是说合并之后的提示