本篇是学习了
廖雪峰的官方网站
的Git教程,并把廖老师的教程简化当做自己的一个工具命令笔记,以此作为分享~
~~
廖雪峰的官方网站
Git教程网址:https://www.liaoxuefeng.com/wiki/896043488029600
初始化版本库
git init 初始化一个Git仓库(即,把这个目录变成Git可管理的仓库)
添加文件到Git仓库
git add 把文件修改添加到暂存区
git commit -m 把修改文件提交到当前分支
查看状态(工作区、版本库、历史记录、日志信息)
git status 查看工作区状态
git diff <文件名> 查看文件修改内容
git diff HEAD – <文件名> 查看工作区和版本库里最新版本的区别
git log 查看提交历史(git提交的版本号是由SHA1计算得出,用16进制表示,每一个都不重复)
git log --pretty=oneline 只显示提交日志信息
git reflog 查看命令历史
版本回退 & 恢复
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD~100 回退到往上100个版本
git reset --hard [版本号前几位] 恢复到指定版本号
git checkout – file 撤销工作区的修改,两种情况:
- file自修改后没被放到暂存区,撤销修改回到和版本库(commit)一样的状态
- file已添加到暂存区,又做了修改,撤销修改回到添加(add)到暂存区后的状态
以上两种情况都可以撤销修改,前提是还没有进行提交
git checkout <分支名> 切换到该分支
git reset HEAD 撤销暂存区的修改(unstage),重新放回工作区,再用git checkout – file命令丢弃对工作区的修改
(git reset 既可以回退版本,也可以把暂存区的修改回退到工作区)
(如果不但改错了东西,还把暂存区提交到了版本库,可以回退到上一个版本进行撤销修改,前提:没有把本地版本库推送到远程)
删除文件
rm 删除本地文件管理器中的文件
(此时,Git知道你删除了文件,则工作区和版本库不一致了)
git rm 从版本库中删除该文件(使工作区和版本库一致)
git add 与 git rm 效果一样
git checkout – 把误删的文件恢复到最新版本
(git checkout 用于将版本库中版本替换工作区版本,所以无论工作区是修改还是删除都可以一键还原,而从来没有被添加到版本库即commit就被删除的文件是无法恢复的)
远程仓库
git remote add origin git@server-name:path/repo-name.git 关联一个远程库(origin是远程库名字,习惯命名)
git push -u origin master 第一次推送master分支的所有内容(加上-u参数,git不但会把本地master分支内容推送到远程master分支,还会把两分支关联起来)
git remote -v 查看远程库信息
git remote rm 删除远程库(解除本地和远程的绑定关系,并不是物理上删除远程库)
创建与合并分支
git checkout -b 创建并切换到该分支(相当于执行了两条命令:git branch 创建分支 , git checkout )
git switch -c 创建并切换到该分支(作用同上)
git checkout = git switch 切换到已有分支
git branch 列出所有分支
git merge 合并指定分支到当前分支
git branch -d 删除指定分支
git log --graph 查看分支合并图
git merge --no-ff -m “message” 禁用Fast forward(快进模式)
git stash 将修改暂存(并不是放到暂存区)
git stash list 查看暂存列表
git stash pop 恢复暂存(同时把stash中的内容删除)
git branch -D 强行删除一个没有被合并的分支
git remote 查看远程库信息
git remote -v 查看远程库详细信息
创建 & 查看标签
git tag 创建一个名为"v1.0"的标签(默认打在最新提交的commit上)
git tag 查看所有标签
git log --pretty=oneline --abbrev-commit 查看历史提交的commit id
git tag [commit id] 为指定的提交创建标签
git show 查看具体标签信息
git tag -a -m “message” [commit id] 创建带有说明的标签(-a指定标签名,-m指定说明文字)
(标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签)
操作标签
git tag -d 删除本地标签
git push origin 推送某个标签到远程
git push origin --tags 一次性推送全部本地标签
删除远程标签
(分两步)
git tag -d 先从本地删除
git push origin :refs/tags/ 从远程删除
火鸡萌
(伙计们),一起学习吧~~