Git基础教程

warning: 这篇文章距离上次修改已过1605天,其中的内容可能已经有所变动。

Git是什么?

gitgit

Git是一个分布式版本控制系统。

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

特点

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

内部设计

  1. 直接记录快照,而非差异比较
  2. 近乎所有操作都是本地执行
  3. Git 保证完整性
  4. Git 一般只添加数据
  5. 三种状态:已提交(committed)、已修改(modified)和已暂存(staged)
  6. Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。

基本的 Git 工作流程如下:

  1. 在工作目录中修改文件。
  2. 暂存文件,将文件的快照放入暂存区域。
  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

安装git

gitgit

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 外观和行为的配置变量。 这些变量存储在三个不同的位置:

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。
  2. ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。
  3. 当前使用仓库的 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++HBuilderXEditPlus

克隆一个仓库

#克隆一个仓库
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

如果你版本退回错了怎么办?

commit_idcommit_id

#查看你的命令记录
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

  1. 登陆CODING
  2. 点击右上角你的头像>打开菜单>选择个人设置
  3. 在左侧,侧边栏中点击SSH公钥
  4. 点击右侧 新增公钥 按钮
  5. 打开 ~\.ssh\ 目录,用第三方软件打开 id_rsa.pub 文件,填入到公钥内容下面的文本框内。
  6. 点击添加
  7. ok

上传公钥到码云

参考上一条

最后修改于:2019年11月27日 19:56
评论已关闭