前言
课程学习笔记,BV1FE411P7B3
Git
开源的分布式版本控制系统(集中式:SVN)
- 查看工程的历史记录,备份,恢复以前的版本
- 跨区域多人协同开发,统计工作量
分类 | 软件 | 说明 |
---|---|---|
本地版本控制 | RCS | 每个版本保存一次,个人使用,如记录补丁文件 |
集中式版本控制 | SVN | 所有版本的数据都保存到中央服务器上,开发者从服务器更新/推送 |
分布式版本控制 | Git | 每个用户都保存所有版本的数据,用户之间相互推送修改 |
- Git Bash:Linux风格的命令行(编辑器为vim),使用最多
- Git CMD:Windows风格的命令行
- Git Bash:图形界面,不建议初学者使用
Git 配置
在Git Bash
中使用命令操作
git config -l # 查看git所有配置
git config --system --list # 查看系统配置
### 位置:Git\etc\gitconfig
git config --global --list # 查看用户配置
### 位置:C:\Users\.gitconfig
Git 基本理论
工作区域:
- 工作目录(Working Directory):存放项目代码
- 暂存区(Stage/Index):临时存放改动,一个保存待提交文件列表的文件
- 仓库(Repository/Git Directory):保存所有版本的数据,HEAD指向最新放入仓库的版本
- (远程)git 仓库(Remote Directory)
Git 项目搭建
先进入项目文件夹
git init # 本地仓库搭建
### 或者克隆远程仓库,url从网站项目中获取:git clone [url]
git config --global user.name "" # 设置用户名
git config --global user.email "" # 设置用户邮箱
git remote add 用户名/自建仓库名 [url] # 与远程仓库建立连接
git pull 用户名/自建仓库名 分支名称 # 从远程仓库拉取内容
### 若失败,则使用:git pull --allow-unrelated-histories [url]
git add . # 将项目中的所有文件添加到暂存区
git commit -m "注释消息" # 提交暂存区的内容到本地仓库,必须填写"注释消息"
git push 用户名/自建仓库名 本地分支名称 # 将本地仓库的内容推送到远程仓库
git branch # 带*的即为当前分支
git branch -a # 查看所有分支,包括远程分支
git checkout -b 新分支名称 # 创建新分支,并切换到该分支
git checkout 分支名称 # 切换分支
-
上述内容既可以在
Git Bash
中输入命令实现,也可以在vscode
中直接操作(最左侧第三个图标) -
使用多个分支时,文件资源管理器打开指定目录后,只展示当前分支的内容
Git 文件操作
文件状态
git
管理的文件有三种状态:modified、staged、committed
-
Untracked:在项目文件夹中,但未加入
git
库git add .
后状态变为 Staged
-
Unmodify:文件在仓库中的内容与项目中一致
- 被修改,则变为 Modified
git rm
移出仓库,则变为 Untracked
-
Modify:已修改
git add .
进入暂存状态 Stagedgit checkout
丢弃修改,即从仓库中取出文件,覆盖当前修改
-
Staged:暂存
git commit
将修改同步到仓库,则变为 Unmodifygit reset HEAD filename
取消暂存,则变为 Modified
git status # 查看当前目录下所有文件的状态
git status 文件名 # 查看指定文件的状态
忽略文件
不将其纳入版本控制,即不放入暂存区、不同步到仓库
在项目主目录中建立 .gitignore
文件
# 注释符号
*.txt # 忽略所有以.txt结尾的文件
!lib.txt # lib.txt 不被忽略
/temp # 忽略项目根目录下的 temp 文件
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/note.txt,但不忽略 doc/read/note.txt
gitee 免密登录
设置本机绑定SSH公钥
-
进入
C:\Users\.ssh
,打开Git Bash
,输入命令ssh-keygen
;一路Enter
确认 -
将生成的
id_rsa.pub
文件的内容粘贴到公钥处