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 --onelinegit log# 合并分支git merge dev# 冲突解决
