Git简介
-
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
-
版本控制介绍
- 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
- 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本, 方便版本切换。
-
集中式版本控制
- 有一个单一的集中管理的服务器,保存 所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或 者提交更新。
- 有一个单一的集中管理的服务器,保存 所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或 者提交更新。
-
分布式版本控制
- 客户端提取的不是最新版本的文件快照,而是把代码 仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用 其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次 对整个文件仓库的完整备份。
- 客户端提取的不是最新版本的文件快照,而是把代码 仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用 其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次 对整个文件仓库的完整备份。
-
Git 和代码托管中心
- 代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
- 局域网 :GitLab
- 互联网 :GitHub(外网) ,Gitee 码云(国内网站)
Git 分支操作命令
-
git分支:在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独 分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时 候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是 一个单独的副本。(分支底层其实也是指针的引用)
-
常用命令
git branch 分支名 | 创建分支 |
---|---|
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
Git合并冲突问题
- 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替 我们决定使用哪一个。必须人为决定新代码内容。
Git常见操作
新用户初始化Git
- 设置用户签名:git config --global user.name 用户名
- 设置邮箱:git config --global user.email 邮箱
上传文件
- 初始化本地库:git init
- 将文件添加至缓存区:git add 文件名
- 将缓存区文件提交到本地库: git commit -m"版本信息"文件名
- 将本地库中内容推送至对应库中:git push [别名/链接] 分支名(一般为master)
其他常用命令
- 查看本地库状态:git status
- 查看历史记录:git reflog git log
- 移除缓存区指定内容:git rm-cached 文件名
- 版本穿梭:git reset --hard 版本名称
- 查看分支:git branch -v
- 切换分支:git checkout 分支名
- 将指定分支与当前分支合并:git merge 分支名
下载文件
- 克隆远程库:git clone 别名/链接
- 拉取库内容,适用于更新:git pull 别名/链接
Github操作
-
在Github上创建远程仓库
- 点击加号,选择new repository
- 选择Repository name创建项目名,选择public公开或private私有后,点击Create repository
- (选)复制GitHub提供的HTTP后,给该网址创建别名,用于推送或拉取
- 使用命令git push (别名)/链接 分支名 将代码推送至Github
-
拉取Github中的代码
使用命令git pull (别名)/链接 分支名 将Github代码拉取 -
克隆远程库代码
获取https链接,可选择命名别名 -
邀请成员编辑远程库
- 选中Settings–>Manager access -->Invite a collaborator–>输入成员名称
- 点击Pending Invite后面的复制按钮,使用该链接进行同意邀请
-
外成员将修改代码返回至内部远程库
- 发送:选择Pull requests–>New pull requests–>写入标题和具体内容–>Create pull request
- 接收:选择Pull requests–>打开文件–>Merge pull request–>Confirm merge
-
命令
git remote -v 查看当前所有远程库的别名 git remote add 别名 远程地址 给指定的链接提添加别名 git push (别名)/链接 分支名 将代码推送到Github git clone (别名)/链接 克隆远程库代码
附:Github及Gitee地址
GitHub: https://github.com/
Gitee:开源中国推出的基于git的代码托管服务。
链接:https://gitee.com/