创建版本库,添加,提交
// 初始化
git init
// 把文件修改添加到暂存区
git add .
// 把暂存区的所有内容提交到当前分支
git commit -m 'something'
只有add到暂存区才能加入到commit
工作区 ---add---> 暂存区 ---commit---> 当前分支
Git的版本
// 查看状态
git status
// 查看修改内容
git diff
回退/未来
// 查看提交历史
git log
// 查看当前版本
git reset --hard HEAD
// 回退到上一个版本
git reset --hard HEAD^
// 返回到最新的版本(从过去到未来)
git reset --hard 'commit id'
// 通过命令日志来回到未来
git reflog
git reset --hard 'commit id'
工作区
即你初始化时的文件夹
版本库
工作区的隐藏目录.git
撤销修改
第一种:修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
第二种:已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
// 丢弃工作区的修改
git checkout -- .
已经添加到暂存区
// 撤销暂存区修改
git reset HEAD 'file'
// 再丢弃工作区的修改
git checkout -- .
删除
// 确认从版本库删除
git rm 'file'
git commit -m 'delete'
// 撤销删除
git checkout -- 'file'
git checkout其实就是用版本库的版本替换工作区的版本
添加远程库
// 关联
git remote add origin git@github.com:name/learngit.git
// 第一次推送
git push -u origin master
加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
克隆
git clone git@github.com:name/learngit.git
分支
// 创建分支,-b参数表示创建并切换
git checkout -b dev
// 相当于
// 创建分支
git branch dev
// 切换分支
git checkout dev
// 查看当前分支
git branch
// 合并
git merge dev
// 删除分支
git branch -d dev
// 将未合并过的分支强制删除
git branch -D <name>
冲突
先解决冲突,在提交
// 查看合并情况
git log --graph --pretty=oneline --abbrev-commit
stash
// 存储工作现场
git stash
// 回到工作现场
git stash pop
标签
默认标签是打在最新提交的commit上的
// 打标签
git tag v1.0
// 查看所有标签
git tag
// 为指定commit打标签
git tag v1.1 'commit id'
// 删除标签
git tag -d v0.1
// 推送标签
git push origin v1.0
网友评论