Git操作入门

Git是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问.Git与你熟悉的大部分版本控制系统的差别是很大的。相似的还有Subversion、CVS、Perforce、Mercurial 等等,他们
使用“增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。Git正好与之相反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。
理论上,Git 可以保存任何文档,但是最善于保存文本文档,因为它本来就是为解决软件源代码(也是一种文本文档)版本管理问题而开发的,提供了许多有助于文本分析的工具。
对于非文本文档,Git 只是简单地为其进行备份并实施版本管理。

git常用命令

命令 作用
git init

初始化,创建工作目录、初始化本地 git 仓库

git status

查看 git 状态 (文件是否进行了添加、提交操作)

git add 文件名

添加,将指定文件添加到暂存区

git commit -m '提交信息'

提交,将暂存区文件提交到历史仓库

git log

查看日志( git 提交的历史日志)

git config -l

所有的配置文件,其实都保存在本地!

Git配置

查看配置 git config -l

查看不同级别的配置文件:

  #查看系统
  configgit config --system --list  


  #查看当前用户(global)配置
  git config --global --list

Git相关的配置文件:

1)、Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级

2)、C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局

设置用户名与邮箱(用户标识,必要)

安装Git后首先要做的是设置你的用户名称和e-mail地址。

这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

git config --global user.name "alrtliny" #名称
git config --global user.email xxxxxx@qq.com #邮箱

Git本地有三个工作区域:【加上远程git仓库分为四个工作区域】

工作目录(Working Directory)、平时存放项目代码的地方

暂存区(Stage/Index)、用于临时存的改动,事实上它只是一个文件,保存即将提交到文件列表信息

资源库(Repository或Git Directory)、安全存放数据的位置,这里面有你提交到所有版本的数据

如果在加上远程的git仓库(Remote Directory)托管代码的服务器,可以简单的认为是远程数据交换

文件在这四个区域之间的转换关系如下:

工作流程

1、在工作目录中添加、修改文件;【git add 】

2、将需要进行版本管理的文件放入暂存区域;【git commit 】

3、将暂存区域的文件提交到git仓库。【git push】

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

远程仓库工作流程

步骤
1. 创建本地仓库

 git init

2. 创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库

  git add

3. 创建远程仓库

 设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)

# 进入 C:\Users\Administrator\.ssh 目录# 生成公钥
ssh-keygen –t rsa –C “输入邮箱” 

公钥测试
命令: ssh -T git@gitee.com

4. 推送到远程仓库

  git commit

  git push

1. 为远程仓库的URL(网址),自定义仓库名称

2. 推送

  命令 git remote add 远程名称 远程仓库URL git push -u 仓库名称 分支

git push失败, 提示! [rejected] master -> master (fetch first)error: failed to push some refs.解决办法

出现错误的主要原因是gitee中的README.md文件不在本地代码目录中

此时我们要执行git pull --rebase origin master命令将README.md拉到本地,

然后执行git push origin master就可以成功了