Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

重要内容

官方网站:官网
资源:Pro Git,官网有中文版的PDF文件,讲述地非常详细,值得一看。

开始使用

初始配置

  1. #打开命令框:右键->git Bash Here
  2. #配置用户名与邮箱
  3. git config --global user.name "username" #用户名
  4. git config --global user.email "emali@example.com" #邮箱
  5. #查看配置信息
  6. git config -l
  7. #查看git版本
  8. git version

三种状态

  1. 已修改(modeified):修改了文件,还没有保存到数据库中。
  2. 已暂存(staged):对一个已修改的文件的当前版本做的标记,供以提交。
  3. 已提交(committed):数据已经安全地保存在本地数据库中上。

由于这三个状态,Git项目对应拥有三个阶段:

  1. 工作区:对项目的某个版本独立提取出的内容,与项目文件夹对应。
  2. 暂存区:是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中。
  3. Git仓库:保存项目的元数据和对象数据库的地方。

简单的工作流程

  1. 在工作区修改文件。
  2. 将想要提交的数据放入暂存区。
  3. 提交更新,把暂存区的所有文件永久性存储到Git目录中。

    Git基础

    1. #初始化
    2. git init
    3. #追踪文件,写文件名
    4. git add .
    5. git add README
    6. # 从暂存区移除文件
    7. git rm --cached filename
    8. # 提交,-m 必须要写
    9. git commit -m 'initial project version'
    10. # 克隆仓库,从云端
    11. git clone <url>
    12. # 检查当前文件状态
    13. git status
    14. # 查看日志
    15. git log
    16. # 将文件返回至与元数据一致
    17. 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

  1. <a name="3998h"></a>
  2. ### 远程仓库
  3. <a name="nXxk1"></a>
  4. #### 分类
  5. [Gitee](https://gitee.com/):国内的github<br />[github](https://github.com/):代码托管网站
  6. <a name="H91c9"></a>
  7. #### 设计SSH秘钥
  8. ```git
  9. # 在本地运行 ," "内容可以随便写,回车三次即可生成
  10. ssh-keygen -t rsa -C "xxxx@email.com"
  11. # 在C:\Users\主机名\.ssh中会生成两个文件,id_rsa.pub是公钥,
  12. # 打开后复制里面的内容。id_rsa是私钥,不能泄露出去。
  13. # 登陆gitee,在账户设置中,选择 "SSH Keys" ,
  14. # 起一个名字,在Key中填写 id_rsa.pub 文件中的

本地有,运程没有

  1. # 先在创建一个空项目,复制项目地址
  2. # 本地连接远程
  3. git remote add origin <url>
  4. # 推送文件至远程仓库
  5. git push origin master

分支操作

  1. # 查看分支
  2. git branch
  3. # 创建分支
  4. git branch dev
  5. # 切换分支
  6. git checkout dev
  7. # 简易日志
  8. git log --oneline
  9. git log
  10. # 合并分支
  11. git merge dev
  12. # 冲突解决