git概述
Git是一个分布式版本控制系统。
git工作机制
git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
- 局域网
- GitLab
- 互联网
- GitHub(外网)
- Gitee码云(国内网站)
git安装
官网地址: git-scm.com/
查看git版本:git --version
选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步。
Git选项配置,推荐默认设置,然后下一步。
Git安装目录名,不用修改,直接点击下一步。
Git 的默认编辑器,建议使用默认的 Vim 编辑器,然后点击下一步。
默认分支名设置,选择让 Git 决定,分支名默认为 master,下一步
修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git。
选择后台客户端连接协议,选默认值 OpenSSL,然后下一步。
配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动转换,然后继续下一步。
选择 Git 终端类型,选择默认的 Git Bash 终端,然后继续下一步。
选择 Git pull 合并的模式,选择默认,然后下一步。
选择 Git 的凭据管理器,选择默认的跨平台的凭据管理器,然后下一步。
其他配置,选择默认设置,然后下一步。
实验室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install
按钮,开始安装 Git。
点击 Finsh 按钮,Git 安装成功!
git常用命令
| 命令名称 | 作用 |
|---|---|
| git config --global user.name 用户名 | 设置用户签名 |
| git config --global user.email 邮件 | 设置用户签名 |
| git init | 初始化本地库 |
| git status | 查看本地库状态 |
| git add 文件名 | 添加到暂存区 |
| git commit -m "日志信息" 文件名 | 提交到本地库 |
| git reflog | 查看历史记录 |
| git reset --hard 版本号 | 版本穿梭 |
| git config --global credential.helper store | 输入该命令后再次输入用户名/密码便可记住 |
1. 设置用户签名
-
基本语法
git config --global user.name 用户名 git config --global user.email 邮箱 -
实操案例
说明:
签名作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。git首次安装必须设置一下用户签名,否则无法提交代码。
注意: 这里设置用户签名和将来登录 GitHub (或其他代码托管中心)的账号没有任何关系。
2. 初始化本地库
-
基本语法
git init
-
案例实操
-
结果查看
文件夹下出现
.git文件夹
3. 查看本地库状态
-
基本语法
git status
-
案例实操
-
首次查看(工作区没有任何文件)
-
新增文件(hello.txt)
-
再次查看(检测到未追踪的文件)
-
4. 添加暂存区
4.1 将工作区的文件添加到暂存区
-
基本语法
git add 文件名
-
案例实操
5. 提交本地库
5.1 将暂存区的文件提交到本地库
-
基本语法
git commit -m "日志信息" 文件名
-
案例实操
6. 修改文件(hello.txt)
vim hello.txt
6.1 查看状态(检测到工作区有文件被修改)
git status
6.2 将修改的文件再次添加暂存区
git add hello.txt
6.3 查看状态(工作区的修改添加到了暂存区)
git status
7. 历史版本
7.1 查看历史版本
-
基本语法
git reflog 查看版本信息
git log 查看版本详细信息
-
案例实操
7.2 版本穿梭
-
基本语法
git reset --hard 版本号
-
案例实操
Git切换版本,底层其实移动的 HEAD 指针,具体原理如下图所示。
8. git SSL certificate problem: unable to get local issuer certificate
这个问题是由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证。
执行以下命令:
git config --global http.sslVerify false
9. 记住用户名和密码
git config --global credential.helper store
输入完该命令后再次输入用户名密码即可
10. 查看分支
git branch // 查看本地所有分支
git branch -r // 查看远程所有分支
git branch -a // 查看本地和远程的所有分支
git branch <branchname> // 新建分支
git branch -d <branchname> // 删除本地分支
git branch -d -r <branchname> // 删除远程分支,删除后还需推送到服务器
git push origin:<branchname> // 删除后推送至服务器
git branch -m <oldbranch> <newbranch> // 重命名本地分支
/**
* 重命名远程分支:
* 1. 删除远程待修改分支
* 2. push本地新分支到远程服务器
*/
// git中一些选项解释:
-d
--delete: 删除
-D
--delete --force的快捷键
-f
--force: 强制
-m
--move: 移动或重命名
-M
--move --force的快捷键
-r
--remote:远程
-a
--all: 所有
11. git fetch用法
git fetch <远程主机名> // 这个命令将某个远程主机的更新全部取回本地
如果只想取回特定分支的更新,可以指定分支名:
git fetch <远程主机名> <分支名>
最常见的命令如取回origin主机的master分支
git fetch origin master
取回更新后,会返回一个FETCH_HEAD,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取会的更新信息:
git log -p FETCH_HEAD
12. git pull 用法
git pull 的过程可以理解为:
git fetch origin master // 从远程主机的master分支拉取最新内容
git merge FETCH_HEAD // 将拉取下来的最新内容合并到当前所在的分支中
即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:
git pull <远程主机名> <远程分支名>:<本地分支名>
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
git pull origin next
13. 创建本地分支
git checkout 分支名 切换到本地分支
git checkout -b 分支名 创建本地分支并切换
git push origin 本地分支名
14. 删除远程分支
git push --delete origin dev
删除本地分支:git branch -d dev