Git是什么?

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

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

1#查看你的命令记录
2git reflog
3
4#撤回到指定记录前
5git reset --hard commit_id
连接远程仓库
添加远程仓库
1#添加远程仓库
2git remote add origin 你远程仓库地址
我们一般用 origin 作为远程仓库的名字,这也是Git的默认称呼,当然也可用别的。
推送到远程仓库
1#推送到远程仓库
2git push -u origin master
3
4#强制推送到远程仓库(谨慎使用)
5git push -f origin master
我们第一次推送master分支时,加上了 -u 参数,Git不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以使用简化命令了。
连接云端
生成SSH密钥
1#切换到个人目录,win在C:\Users\你的用户名\
2cd ~
3#生成SSH密钥
4ssh-keygen -t rsa -C "你的邮箱"
5#询问是否生成 按回车
6Generating public/private rsa key pair.
7#密钥保存位置 回车使用默认位置,win在C:\Users\你的用户名\.ssh\下
8file in which to save the key (c/User/%USERNAME%/.ssh/id_rsa):
9#使用密钥的密码,可以不设,回车即可
10passphrase (empty for no passphrase):
11same 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
上传公钥到码云
参考上一条