Git介绍
- Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。
- 下载地址:https://git-scm.com/downloads
- 工作区(Working Directory):wiki-to-thir文件夹就是一个工作区。
- 版本库(Repository):工作区有个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库。
- 版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD
- git add 把文件添加进去,实际上就是把文件修改添加到暂存区
- git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支,这时候的工作区就是干净的。
- git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区
基本操作
- 设置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
- 查看用户名和邮箱
git config user.name
git config user.email
- 创建SSH Key
ssh-keygen -t rsa –C "[email protected]"
在当前用户名路径下生成一个".ssh"文件夹,下属有二个文件:id_rsa(私钥)、id_rsa.pub(公钥)
将id_rsa.pub里面的内容填入GitHub中的Key中即可
- 创建一个空目录
mkdir wiki-to-thir
- 进入这个目录
cd wiki-to-thir
- 初始化改目录为本地的Git仓库Initialized empty Git repository
git init
- 添加文件
git add README.md
- 提交文件到仓库(以及本次提交的说明)
git commit -m "add README.md"
- 设置远程库的名字为origin,Git默认的叫法
git remote add origin [email protected]:fangjian98/wiki-to-thir.git
- 由于远程库是空的,我们在第一次推送 master 分支时,要加上 -u 参数。
git push -u origin master
- 使用 git push 命令,就是把当前分支 master上的所有内容推送到远程库上
git push origin master
- 查看未提交的修改
git diff README.md
- 查看工作区和版本库里面最新版本的区别
git diff HEAD -- README.md
- 远程库克隆
git clone [email protected]:fangjian98/wiki-to-thir.git
附加操作
- 查看当前目录
pwd
- 查看当前分支
git branch
- 查看仓库当前的状态
git status
- 查看文件内容
cat README.md
- 将远程主机的master分支最新内容拉下来后与当前本地分支直接合并 fetch+merge
git pull origin master
- 查看提交到Git的记录
git log
git log --author=fangjian
git log | grep error
- 版本回退:HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^
git reset --hard HEAD^
- 版本回退到最新的版本:这里不能用HEAD而必须使用 commit id ,因为最新版本在之前返回时已经被删除了,1094a就是最新版本的 commit id,可以在之前的代码中查到
git reset --hard 1094a
撤销修改
- 没有 git add之前:把README.md在工作区的修改全部撤销
git checkout -- README.md
- 已经git add,但没有git commit:git reset HEAD file 命令把暂存区的修改撤销掉,重新放回工作区。(暂存区是干净的,工作区有修改)
git reset HEAD README.md
git checkout -- README.md
- 既 git add 了,也 git commit 了
git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard 1094a
删除文件
- 工作区删除文件
rm README.md
- 从版本库中删除该文件
git rm README.md
git commit -m "remove README.md"
- 文件被删错,当commit后版本库里有就可以恢复:用版本库里的版本替换工作区的版本
git checkout -- README.md