git init 创建一个仓库
git add filename 缓存到stage/index
将workspace中的文件缓存到stage/index中
git commit filename
将stage/index中的修改提交到respos中,若add之后file又有新的更改git也不处理,因为最新的修改没有add到stage/index中
git checkout -- filename 丢弃当前工作区的修改
首先尝试从stage中拉取文件到workspace,若stage中没有缓存则从respotile中拉取
git reset HEAD filename -- 丢弃当前缓存区的缓存
将stage/index中的修改回退到workspace(相当于撤销stage中的修改)
git history 查看提交的历史记录
git reset --hard HEAD^ 将repository中的版本往前退一个版本,并将回退的文件覆盖到stage/index,workspace中
git reset --hard HEAD^^ HEAD~5 往前退2个或5个版本
git reset --hard verid(完整或唯一前缀都行) 切换到指定的版本
git reset --soft HEAD^ 仅将repository中的版本往前退一个版本,stage/index和workspace中的不变
git reset --mixed(default)将repository,stage/index回滚到某个版本,workspace中不变
git rm file 删除缓冲区stage/index中的文件
如果需要后悔则git checkout,从repository中更新到stage和workspace中,如果真要删除则git commit
git remote -v 查看当前repository 关联的远程的repository的信息
git remote show origian 查看远程的某个版本信息
将本地的repository关联到远程的repository,并给远程的repository去个别名?(origin)
这里的https://github.....的htt开头可能根据不用的remote的要求而改变
git remote add origin https://github.com/shankusu2017/learngit.git
git remote add origin git@github.com:shankusu2017/learngit.git
删除关联
git remote remove origin
往远程的repository推送(后续可能需要要求输入username,pwd)
git push -u origin master
分支类
git branch 查看当前所有分支和当前正在工作的分支
git branch dev 创建分支
git checkout dev 跳转到dev分支
git checkout master 跳转到master分支
git merge dev 将dev合并到master上(合并到当前工作分支上)
git branch -d dev 删除分支dev
git switch -c dev 创建dev分支并跳转到dev分支 git switch dev跳转到dev分支
git merge --no-ff -m "merge with no-ff" dev 将dev分支合并到当前工作分支上(not faster forward模式,保留dev分支的信息)
现场类
git stash 将当前的stage/index现场藏匿起来 workspace中untracking的文件无法处理
git stash list 查看当前临时藏匿的所有的stage/index的信息
git stash pop 弹出上一个存的stage/index内容,并保留副本
git stash clean 清空当前保存的所有藏匿的副本
git stash drop stash@{$num}:丢弃stash@{$num}存储,从列表中删除这个存储 num通过git stash list查看