Git基础教程
Git是什么?

Git是一个分布式版本控制系统。
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
特点
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
内部设计
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行
- Git 保证完整性
- Git 一般只添加数据
- 三种状态:已提交(committed)、已修改(modified)和已暂存(staged)
- Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
基本的 Git 工作流程如下:
- 在工作目录中修改文件。
- 暂存文件,将文件的快照放入暂存区域。
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
安装git

Git官网 | 项目地址 | Git - Book
Windows
首先请先访问官网下载二进制安装文件。
个人不建议从官网下载,贼慢!您可以考虑从这里下载。
然后疯狂下一步即可。
linux
1.使用包管理工具安装(推荐)
#readhat centos
sudo yum install git
#debian ubuntu deepin
sudo apt-get install git
2.下载二进制文件
访问官网下载并安装。
3.编译安装
访问项目地址下载源代码并编译安装。
#编译安装
tar -zxf git.tar.gz
cd git
make configure
./configure --prefix=/usr
make all doc info
sudo make install install-doc install-html install-info
mac
请先访问官网下载并安装。
首次运行Git时需要的配置
设置相关信息
#设置用户名
git config --global user.name "你的用户名"
#设置电子邮件
git config --global user.email "你的电子邮件地址"
查看配置信息
#列出配置信息
git config --list
相关知识
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有--system
选项的git config
时,它会从此文件读写配置变量。~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 可以传递--global
选项让Git
读写此文件。- 当前使用仓库的 Git 目录中的
config
文件(就是.git/config
):针对该仓库。每一个级别覆盖上一级别的配置,所以
.git/config
的配置变量会覆盖/etc/gitconfig
中的配置变量。在 Windows 系统中,Git 会查找$HOME
目录下(一般情况下是C:\\Users\\$USER
)的.gitconfig
文件。Git 同样也会寻找
/etc/gitconfig
文件,但只限于MSys
的根目录下,即安装 Git 时所选的目标位置。
获取Git仓库
在已有目录中创建仓库
1.首先进入到你要建立git仓库的目录内。
#进入到项目位置
cd D:\WORK\ideaProjects\test
3.创建仓库
#初始化Git仓库
git init
之后你会在这个目录下发现一个 .git
的目录,这个目录就是Git用来跟踪管理版本库的,由Git自动管理,没事不要动。
千万不要用Windows自带的记事本编辑任何文本文件。会导致文件编码异常,建议用第三方软件处理。比如notepad++、HBuilderX、EditPlus。
克隆一个仓库
#克隆一个仓库
git clone 仓库地址
#例子:克隆git官方仓库
git clone https://github.com/git/git
向Git仓库内添加文件
将文件添加到暂存区
#添加文件到暂存区
git add README.md
README.md 文件是这个项目或仓库的说明文件,建议每一Git仓都有一个
提交文件到仓库
#提交文件到仓库
git commit -m "本次提交文件的备注或是说明"
检查文件(们)当前状态
#检查文件(们)当前状态(详细)
git status
#检查文件(们)当前状态(简略,常用)
git status -s
检查已暂存和未暂存文件的修改
#查看尚未暂存的文件修改了哪些部分,也就是修改之后还没有暂存起来的变化内容
git diff
#要查看已暂存的将要添加到下次提交里的内容
git diff --cached
#或 (这个貌似更好记,1.6.1以上版本可用)
git diff --staged
git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。
版本退回
查看文件的提交记录
#查看提交记录
git log --pretty=oneline
当然你可以直接使用 git log
查看提交记录,不过这会输出很多东西,看着比较闹腾。
文件版本退回
#退回到上个版本
git reset --hard HEAD^
#退回到上上个版本
git reset --hard HEAD^^
#退回到上上上个版本
git reset --hard HEAD^^^
#退回到100个版本之前
git reset --hard HEAD~100
如果你版本退回错了怎么办?

#查看你的命令记录
git reflog
#撤回到指定记录前
git reset --hard commit_id
连接远程仓库
添加远程仓库
#添加远程仓库
git remote add origin 你远程仓库地址
我们一般用 origin 作为远程仓库的名字,这也是Git的默认称呼,当然也可用别的。
推送到远程仓库
#推送到远程仓库
git push -u origin master
#强制推送到远程仓库(谨慎使用)
git push -f origin master
我们第一次推送master分支时,加上了 -u
参数,Git不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以使用简化命令了。
连接云端
生成SSH密钥
#切换到个人目录,win在C:\Users\你的用户名\
cd ~
#生成SSH密钥
ssh-keygen -t rsa -C "你的邮箱"
#询问是否生成 按回车
Generating public/private rsa key pair.
#密钥保存位置 回车使用默认位置,win在C:\Users\你的用户名\.ssh\下
file in which to save the key (c/User/%USERNAME%/.ssh/id_rsa):
#使用密钥的密码,可以不设,回车即可
passphrase (empty for no passphrase):
same passphrase again:
上传公钥到GitHub
1.登陆GitHub
2.点击右上角你的头像>打开菜单>选择设置(Settings)
3.在左侧,侧边栏中点击SSH and GPG keys
4.点击右侧绿色 New SSH key 按钮
5.打开 ~\.ssh\
目录,用第三方软件打开 id_rsa.pub 文件,填入到key下面的文本框内。
6.点击 add 按钮
7.ok
注意:请妥善保管好私钥 id_rsa 不要泄露给任何人。
上传公钥到coding
- 登陆CODING
- 点击右上角你的头像>打开菜单>选择个人设置
- 在左侧,侧边栏中点击SSH公钥
- 点击右侧 新增公钥 按钮
- 打开
~\.ssh\
目录,用第三方软件打开 id_rsa.pub 文件,填入到公钥内容下面的文本框内。 - 点击添加
- ok
上传公钥到码云
参考上一条