Git学习笔记

Git原理图

原理图

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

什么是Git?

Git是分布式版本控制系统

为什么需要Git?

为了更好的管理项目源码,团队之间协同开发。

Git采用的校验机制?

SHA-1散列由40个十六进制字符(0-9和a-f)所组成的字符串,这些字符串是根据文件内容和Git的目录结构计算所得

Git的使用

配置个人信息

1
2
git config --global user.name "your user name"
git config --global user.email "your email"

查看个人信息

1
git config --list

本地仓库初始化

1
git init

克隆远程仓库

HTTPS

1
git clone https://github.com/HuangDayu/Almanac.git

SSH

1
git clone git@github.com:HuangDayu/Almanac.git

查看文件状态

1
git status
  • Changes to be committed:已暂存、可提交文件
  • Untracked files:未暂存文件

查看未缓存的文件的变更细节

1
git diff

查看已缓存的文件的变更细节

1
git diff --staged

添加文件的缓存区

1
2
3
4
# 指定文件
git add readme.md
# 所有文件
git add .

提交缓存区的文件到本地仓库

1
git commit -m "update"

提交非缓存区的文件提交到本地

1
git commit -a -m "update"

查看本地仓库提交历史

1
git log
1
git log --pretty=oneline

查看每次版本提交记录

1
git reflog

回退到指定版本

1
git reset --hard 1dabc4e
  • 1dabc4e 是commit id

查看文件修改历史

1
git diff HEAD -- readme.md

撤销文件修改

  • 修改操作:增删改查
1
git checkout -- readme.md

关联远程仓库

1
git remote add origin git@github.com:HuangDayu/Almanac.git

推送到远程仓库

1
git push -u origin master

从远程仓库拉取数据到本地仓库

1
git fetch origin

合并远程仓库和本地仓库

1
git merge origin

从远程仓库拉取数据并直接合并到本地

1
git pull origin master

缓存本地更改

1
git stash

拉取远程仓库最近代码

1
git pull --rebase

本地缓存更改和拉取的最近代码合并

1
git stash pop

查看当前分支

1
git branch

创建分支

1
git branch master1

切换分支

1
git checkout master1

创建并切换分支

1
git checkout -b master1

查看分支合并图

1
git log --graph --pretty=oneline --abbrev-commit

合并分支

1
git merge master1

删除分支

1
git branch -d master1

生成公钥

1
ssh-keygen -t rsa -C "your email" -f ~/.ssh/github

修改用户配置文件

1
vim ~/.ssh/config
1
2
3
4
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github

测试配置文件

1
ssh -T git@github.com

添加ssh-key代理

1
ssh-add ~/.ssh/github

查看ssh-key代理

1
ssh-add -l

删除ssh-key代理

1
ssh-add -D

参考文献

Git 官方文档
阮一峰:常用 Git 命令清单
阮一峰:Git 原理入门
看完不会Git命令行我跪搓板
生成多个git ssh密钥
Git大全

今日诗词

作者信息