git的搭建和使用
1、git与github介绍
Git是什么
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
版本控制器分为
CVS/SVN/Git
SVN
客户端/服务器
GIT
客户端/代码托管网站(例如:github)
注1:类似的代码托管网站还有:github/码云/阿里云Code源码管理
注2:类似的技术GitLab,但它与GitHub又有一定的区别
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。
不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,
简单来说可把GitLab看作个人版的GitHub。
Git与SVN区别(重点记录1/2/3点)
1、去中心化
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
2、git仓库的任何一个拷贝都可以独立作为一个服务器来使用
3、在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
4、其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5、直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
直接记录快照,而非差异
6、直接记录快照,而非差异
GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。
git 一般划分三层 远程仓库,本地仓库,本机
再这里我们需要来注册一下git (邮箱+密码)
点击new 我们来创建一个仓库
私有化创建和公有化一致,在下方点击private就是私有的
接下来我们来删除一个公共的,首先我们先来创建一下
点击下图的XYX
点击settings
点击 然后输入你要删除的名字
注意:名字删除的要输入对,不然找不到
如何创建文件夹和文件
层级目录就拿下图的为列source/他会自动转换到下一级
2、下载安装Git-20-64-bit.exe
下载地址:https://git-scm.com/downloads
点击
安装路径
检测安装成功,任意窗口或桌面都可以右键,出现下面两个选项即可
“Git bash here”打开命令窗口
查看git的配置列表
git config --list
Git配置帐号和邮箱(本机)
git config --global user.name “username”
git config --global user.email “email”
完成之后他会在你的用户哪里创建一个文件夹里面放的就是用户名密码
Git命令使用场景
1.文件状态
git中的文件有以下几种状态
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
2.工作区域
按照本地计算机与远程计算机划分,工作区域有以下几种
1)本地计算机
Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
Repository(本地仓库):提交到本地仓库的文件。
2)远程计算机
Repository(远程仓库):已提交到远程计算机内的文件。
常用命令(重点)
git clone :将远程仓库clone到本地计算机。
git status :展示工作区及暂存区域中不同状态的文件。
git add :将内容从工作目录添加到暂存区。
git commit :所有通过 git add 暂存的文件提交到本地仓库。
git push :将本地仓库的记录提交到远程仓库。
git reset HEAD :从暂存区移除指定文件。
git checkout – :从本地仓库恢复指定文件。
git pull :拉取远程仓库的数据。
git init
克隆仓库到本地
公库用https
私库用SSH
输入 git clone
https://github.com/XYX-lady/T224_pub.git(以上的路径)
本地文件上传到远程仓库上
输入git status
之后我们在目录里面创建一个文件夹
再次输入git status会出现以下(未跟踪状态)
增加
git reset HEAD <file>回退
提交本地仓库
会进入在这里你可以按insert 键进行插入 插入完成之后按ESC 在输入:wq退出即可
注释的方法有两种
还有一种就是
git commit -am "注释"
回车就好
接下来我们在来执行git status
这个时候还没有到github上还在本地仓库中 需要推送到远程仓库中去
git push
输入之后需要填写用户名和密码
邮箱也是可以的
输入了用户名之后还我们还需要写密码
提交完成
本地仓库变成远程仓库上
在本地仓库上创建一个仓库
打开黑窗口
切到本地文件夹上
输入
get init
即可创建本地仓库
再这里我们再创建一个文件夹
输入
git status
git add ssm.txt(你创建的文件名)
提交
git commit -am "注释"
即可进入本地仓库
在这里添加我们本地仓库的的仓库名(注意保持一致)
不能选中,否则本地仓库不能和远程操作相关联
将本地仓库的当前分支与远程仓库相关联
git remote add origin https://github.com/lixiao12/test224_pub2.git
执行这两步
即
将本地代码库的某一分支(eg:master)推送到远程的代码库(合并主分支)
git push -u origin master
再次刷新
远程仓库导入到本地文件上
创建create new file
创建文件名
只想要改变或者新增的文件
刚刚创建的
git pull
解决冲突问题
加入有两个开发人员同时更改李一个文件
再本地新建一个文件夹和之前那个文件夹不同模拟两个不同的电脑
获取到值
打开黑窗口
输入
git status
git add (文件名)
git commit -am "注释"
git push
上面是我提交的接下来是其他人提交的
这个时候我们需要从远程仓库获取同一个代码
git pull
找到冲突的文件吧需要的留下,不需要的删除即可
git status
这个表示以经修改了状态
git add smm.txt
git commit -am"注释"
git push