Git学习笔记
创建版本库
创建
- 进入一个目录中
git init
命令把这个目录变成Git管理的仓库- git会在当前目录下创建一个.git目录
添加文件
git add <file>
命令来添加文件git commit -m "descruibe"
命令来把文件提交到仓库-m
后面是本次提交的说明git commit
命令可以一次提交多个文件,相当于把暂存区的全部文件提交到仓库中
版本修改
git status
命令可以查看当前版本库的状态git diff <file>
命令可以查看文件变化了哪里git log
用于查看历史记录git commit --pretty=oneline
简化显示内容
版本更新
git add
命令可以用于提交也可以用于修改
版本回退
- 一长串的是commit id
- 在Git中,用HEAD表示当前版本
- 上一个版本就是HEAD^,上上一个版本就是HEAD^^,上100个版本是HEAD~100
git reset --hard HEAD^
回退到上一个版本- 如果回退到旧版本后想回退到最新版本,使用
git reset --hard < commit id >
注意这里的commit id只用写一部分就好 - Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针
git relog
命令记录了用户的每一次命令,包含每一次命令之后的commit id
版本库
- .git目录是Git的版本库
- Git工作的过程
)
- 用git add把文件添加进去,实际上就是把文件修改添加到暂存区
- 用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
- 创建Git版本库时,Git自动为我们创建了唯一一个master分支
- Git跟踪并管理的是修改,而非文件
- 用
git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别 git checkout -- file
可以丢弃工作区的修改(还没add进去)git checkout -- file
命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区(已经add到暂存区)
删除文件
rm <file>
- 如果确实要删除当前文件
git rm <file>
- 如果是误删想要恢复
git checkout <file>
git checkou
命令就是用版本库里的去替换工作区的版本,不管工作区里是修改了还是删除了,都可以恢复到版本库的最新版本
远程仓库
部署GitHub
- 创建SSH Key
- 检查是否有.ssh目录,没有的话使用
ssh-keygen -t rsa -C "youremail@example.com"
命令创建ssh目录 - id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
- 检查是否有.ssh目录,没有的话使用
- 在GitHub上的账户设置里添加id_rsa.pub里的公钥作为ssh秘钥
设置远程库
- GitHub->Create a new repo
$ git remote add origin <git地址>
- 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
git push -u origin master
- 第一次push的时候,添加-u参数,Git会把本地的master分支和远程的master关联起来
- 之后的提交只用使用
git push origin master
就好了
从远程库中克隆
git clone <git地址>
- Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议
- 使用http协议速度会比较慢,而且每次都要输入口令
码云&GitHub
git remote add origin git@gitee.com:**/**.git
- 如果发现报错,使用
git remote -v
查看远程库信息 git remote rm origin
删除当前远程库origin- 删除后即可再次添加
- 如何关联多个远程库?
git remote add github git@github.com:**/**.git
和git push github master
git remote add gitee git@gitee.com:**/**.git
和git push gitee master