Git分区及执行流程
工作目录:存放我们正在写的代码(当我们新版本开发完成之后,就可以进行新版本的提交)
暂存区:暂时保存待提交的内容(新版本提交后会存放到本地仓库)
本地仓库:位于我们电脑上的一个版本控制仓库(存放的就是当前项目各个版本代码的增删信息)
远程仓库:位于服务器上的版本控制仓库(服务器上的版本信息可以由本地仓库推送上去,也可以从服务器抓取到本地仓库)
Git 常用命令
暂存 stash
当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。
相关命令
# 保存当前未commit的代码 git stash # 保存当前未commit的代码并添加备注 git stash save "备注的内容" # 列出stash的所有记录 git stash list # 删除stash的所有记录 git stash clear # 应用最近一次的stash git stash apply # 应用最近一次的stash,随后删除该记录 git stash pop # 删除最近的一次stash git stash drop
提交 add
1. 提交所有被删除和修改的文件到数据暂存区
git add -u
<==> git add –update
2. 提交所有修改的和新建的数据暂存区
git add .
3. 提交所有被删除、被替换、被修改和新增的文件到数据暂存区
git add -A
<==> git add –all
反转 revert
给定一个或多个现有提交,恢复这些提交引入的更改,并记录下这些更改的新提交。要求你的工作树是干净的(没有来自头部的修改)。
即【将现有的提交还原,恢复提交的内容,并生成一条还原记录】
git revert commitID
恢复该commitID提交的内容,因为 revert 会生成一条新的提交记录,这时会让你编辑提交信息,编辑完后 :wq 保存退出。
git log
重新查看最新的 log,生成了一条 revert 记录,虽然自己之前的提交记录还是会保留着,但你修改的代码内容已经被撤回了。
回滚 reset
使用git reset --soft HEAD^ 撤销commit。
使用git reset --hard HEAD^ 连带add也撤销。
*注:reset 命令只能回滚最新的提交。
分支 branch
git log --all --graph 查看当前的分支状态
1)管理分支
查看分支
git branch 查看当前分支名
git branch -r 查看远程分支
git branch -a 查看所有分支
2)合并分支 merge
git merge test
3)变基分支 rebase
除了直接合并分支以外,我们还可以进行变基操作,它跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置,比如我们希望将test变基到master上,那么test会将分支起点移动到master最后一次提交位置:
git rebase master
远程推送
创建远程仓库后 (github, gitlab),可以通过推送来将本地仓库中的内容推送到远程仓库。
git remote add 名称 远程仓库地址 git push 远程仓库名称 本地分支名称[:远端分支名称]
注意push
后面两个参数,一个是远端名称,还有一个就是本地分支名称,但是如果本地分支名称和远端分支名称一致,那么不用指定远端分支名称,但是如果我们希望推送的分支在远端没有同名的,那么需要额外指定。
克隆 clone Repository
1、clone 远程仓库中的Repository,如下:
git clone git@github.com:FBing/design-patterns.git
2、克隆远程项目分支(dev)到本地
git clone -b 分支名 '远程仓库http地址'
如:git clone -b dev git@github.com:FBing/design-patterns.git
推荐阅读