GIT系列---Git备忘命令
版本控制:一种记录若干文件内容变化(修改),以便将来查阅特定版本修订的解决办法。而我们所使用的Git就是一种 分布式版本控制。
一些概念
-
Workspace工作区,就是我们电脑中的文件目录
-
Index暂存区,暂存区会记录
git add
添加的文件,所操作的文件就变成了可被提交的了,并且通过git status
查看暂存区状态 -
Repository本地仓库,保存了所提交的文件的版本到本地
-
Remote远程仓库,例如GitHub,码云
基本操作
初始化
git init
在当前目录下生成.git
子目录。该目录中管理当前目录内容所需要的仓库数据。
查看git配置信息
git config -list
git config -l
查看已经存在的远程分支
git remote // 列出已经存在的远程分支
git remote -v // 列出详细信息,在每一个名字后面列出其远程url(显示对应克隆地址)
添加一个远程仓库
git remote add url // url为远程仓库git地址
向暂存区添加文件
git add
将工作区的修改的内容提交到暂存区,交由git管理
暂存区状态
git status // 显示更新的文件
可以查看暂存区状态,(工作区修改未add,为红,add未commit,为绿)
提交本地仓库
git commit -m "info" // info为提交描述文案
将暂存区里的所有改动提交到本地版本库
查看提交日志
git log
git log --pretty=oneline // 格式化更简便
git reflog
可以查看提交的-m信息和commit id(一大长串,通过那个前5,6位做版本回溯等操作)
版本回退
// 只撤销commit,不删除add之后工作空间的代码改动
git reset -- soft HEAD^
// 既要撤销commit,又要删除add之后工作空间的代码改动
git reset --hard HEAD^ // 一个^回退一个版本,两个^回退两个版本以此类推
git reset --hard HEAD~1 // ~后数字为回退的版本个数
命令详解
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
--soft
不删除工作空间的改动代码,撤销commit,不撤销git add file
--hard
删除工作空间的改动代码,撤销commit且撤销add
撤销修改
git checkout --<file>
若为add撤销到最新版本库,add了就和暂存区的一样了
git reset HEAD <file> // 撤销暂存区的修改,回到最新的一次提交
推送远程仓库
git remote add origin 仓库链接 // 添加远程仓库
git push -u origin master // 推送至远程仓库
克隆到本地
git clone 远程库链接 // 克隆整个项目
git pull // 获取最新的远程库代码
拉取所有更新分支
git fetch // 获取当前远程仓库的所有分支
git fetch --all // 获取所有远程仓库分支
保存本地工作空间
git stash // 保存本地工作空间的修改,并回到上一个版本,本地代码无更新(未add)
恢复本地工作空间
git stash pop // 恢复之前本地工作空间修改的代码(未add)
分支
- 查看分支
git branch -a // 查看所有分支,包含远程和本地
git branch -r // 查看远程分支
git branch // 查看本地分支,带星的是当前所在分支
- 创建分支
git branch dev // 本地创建dev分支
- 切换分支
git checkout dev // 切换到dev分支
git switch dev
- 创建加切换
git checkout -b dev // 在当前分支的基础上创建新的本地分支dev
git switch -c dev // 同上
git checkout -b dev origin/develop // 在本地新建dev分支拉取远程origin/develop分支代码
- 合并分支
git merge dev // 合并分支dev到当前分支
- 删除分支
git branch -d dev // 删除本地的dev分支
- 新建远程分支
git push origin develop:dev // 把本地分支dev上的代码push到新建远程分支develop上
- 删除远程分支
git push origin :develop // 推送一个空分支到远程分支develop,相当于删除远程分支
git push origin --delete develop // 删除指定的远程分支 develop
- 新建远程分支feature/mvp-4
git push origin HEAD:feature/mvp-4