1,Git 与 GitHub 介绍
2, 下载安装 Git-20-64-bit.exe
3,Git 常用命令
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 中一点不特别, 就是版本库中的另外的一个目录.
GitHub 的简单使用
登录 GitHub 网站
私库 test226
公库 test226_pub
创建文件夹
创建文件
删除库,
选择导航区的 settings 按钮
Git 下载安装
下载地址:
https://git-scm.com/downloads
下载完成之后:
创建开始菜单目录名称, 默认 Git, 不需要修改
选择 Git 使用的编辑器
行末换行符转换, 使用默认值
Install 安装
检测安装成功, 任意窗口或桌面都可以右键, 出现下面两个选项即可
Git 常用命令
Git 配置帐号和邮箱(本机)
Git 配置帐号和邮箱(本机)
一般刚安装 Git 都要配置用户名和密码, 因为你提交代码到本地仓库 (上传代码到远程仓库) 时会用到,
如果没有没有配置, 在你提交时它会提醒你的. 但是, 如果仅仅克隆 (即下载) 公有项目, 你甚至不需要注册 -- 刚刚我们创建的账户是为了以后
fork 其它项目, 以及推送我们自己的修改.
## 命令行配置
0."Git bash here" 打开命令窗口
1. 查看 Git 的配置列表
Git config --list
注 1: 如果没有配置东西, 应该是空的. 照着下面步骤配置完成后, 你可以再试一下该命令, 就会出现一系列配置信息
2. 设置用户名 / 邮箱 / 密码
- Git config --global user.name "username"
- Git config --global user.email "email"
- Git config --global user.password "password"
咱不需要密码, 到时候用 SSH key
- Git config --global user.name "lixiao12"
- Git config --global user.email "[email protected]"
注 1: 全局变量
--global 表示全局的, 即当前用户都有效, 该配置会出现在~/.gitconfig 文件中,~ 表示当前用户的目录,
比如我的是: C:\Users\Administrator\.gitconfig, 打开该文件你会发现如下图所示的内容:
- [user]
- name = xxx
- email = [email protected]
注 2: 局部变量
- Git config user.name "username"
- Git config user.email "email"
局部是只对当前仓库起效的, 它的配置信息会在当前仓库根目录 /.Git/config 文件下
注意: 局部变量覆盖全局变量!!! 和编程语言里面的变量关系是一样的.
注 3: 删除某个全局配置项
Git config --global --unset user.name
Git 命令使用场景
Git 文件状态与工作区域(重点)
Git 的文件状态是其 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 <file> : 从暂存区移除指定文件.
Git checkout -- <file> : 从本地仓库恢复指定文件.
Git pull : 拉取远程仓库的数据.
Git init
从 Git 网站下载项目到本地 Git clone + 仓库地址
Git 冲突
1, 先从远程仓库 pull 代码至本地, 再修改冲突代码, Git pull
注 1:Git status 查看仓库状态, 会显示红色的错误提示消息 "both modified: 冲突. txt"
2, 打开 冲突. txt, 手动修改冲突部分的代码
<<<<<<<HEAD
t224 目录做修改
=======
t226 目录做修改
>>>>>>> b6d61fdf3b4088b12c83e0a72dc5a431a023c0c2
注 1:<<<<<<<HEAD >>>>>>>之间的即为冲突的代码, 手动修改即可
3. 依次 add/commit/push 代码至远程仓库
commit 执行完成, 重新查看仓库状态 Git status, 红色的错误提示消息 "both modified: 冲突. txt"
已经没有, 表示冲突已解决,
Git
来源: http://www.bubuko.com/infodetail-3279977.html