Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
重要内容
官方网站:官网
资源:Pro Git,官网有中文版的PDF文件,讲述地非常详细,值得一看。
开始使用
初始配置
#打开命令框:右键->git Bash Here
#配置用户名与邮箱
git config --global user.name "username" #用户名
git config --global user.email "emali@example.com" #邮箱
#查看配置信息
git config -l
#查看git版本
git version
三种状态
- 已修改(modeified):修改了文件,还没有保存到数据库中。
- 已暂存(staged):对一个已修改的文件的当前版本做的标记,供以提交。
- 已提交(committed):数据已经安全地保存在本地数据库中上。
由于这三个状态,Git项目对应拥有三个阶段:
- 工作区:对项目的某个版本独立提取出的内容,与项目文件夹对应。
- 暂存区:是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中。
- Git仓库:保存项目的元数据和对象数据库的地方。
简单的工作流程:
- 在工作区修改文件。
- 将想要提交的数据放入暂存区。
- 提交更新,把暂存区的所有文件永久性存储到Git目录中。
Git基础
#初始化
git init
#追踪文件,写文件名
git add .
git add README
# 从暂存区移除文件
git rm --cached filename
# 提交,-m 必须要写
git commit -m 'initial project version'
# 克隆仓库,从云端
git clone <url>
# 检查当前文件状态
git status
# 查看日志
git log
# 将文件返回至与元数据一致
git checkout -- <file>
忽略文件
忽略一些不需要进行Git管理的文件,如日志文件、临时文件等。 ```git生成.gitignore文件
cat .gitignore
忽略所有的 .a 文件
*.a
但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
忽略任何目录下名为 build 的文件夹
build/
忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/*/.pdf
<a name="3998h"></a>
### 远程仓库
<a name="nXxk1"></a>
#### 分类
[Gitee](https://gitee.com/):国内的github<br />[github](https://github.com/):代码托管网站
<a name="H91c9"></a>
#### 设计SSH秘钥
```git
# 在本地运行 ," "内容可以随便写,回车三次即可生成
ssh-keygen -t rsa -C "xxxx@email.com"
# 在C:\Users\主机名\.ssh中会生成两个文件,id_rsa.pub是公钥,
# 打开后复制里面的内容。id_rsa是私钥,不能泄露出去。
# 登陆gitee,在账户设置中,选择 "SSH Keys" ,
# 起一个名字,在Key中填写 id_rsa.pub 文件中的
本地有,运程没有
# 先在创建一个空项目,复制项目地址
# 本地连接远程
git remote add origin <url>
# 推送文件至远程仓库
git push origin master
分支操作
# 查看分支
git branch
# 创建分支
git branch dev
# 切换分支
git checkout dev
# 简易日志
git log --oneline
git log
# 合并分支
git merge dev
# 冲突解决