git 常见命令(补充)
- 回滚到上个版本
git reset --hard HEAD^
- 回滚到上上个版本
git reset --hard HEAD^^
- 查看提交记录
git log
# 格式化
git log --pretty=oneline
- 查看变更内容
git diff
- 查看操作的每一次记录(包括回滚记录,git log在某次回滚后,不会记录这次回滚以后的所有记录,一般可以用于旧版本恢复到新版本找不到commitid时使用)
# 参考https://blog.csdn.net/ouyang_peng/article/details/84061662
git reflog
- 丢掉工作区的修改(用版本库里的版本替换工作区的版本)
git checkout -- filename
# git checkout 有两种情况
#一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状;
#一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
- 把暂存区的修改会退到工作区
git reset HEAD filename
# HEAD 表示最新版本 可用commitid 代替
- 删除一个文件
# 从版本库中删除
git rm filename
# 删除本地文件
rm filename
# 提交
git commit -m 'delete filename'
- 查看关联的远程仓库信息
# 查看关联的远程仓库的名称
git remote
# 查看关联的远程仓库的详情信息
git remote -v
- 本地仓库和远程仓库关联
# origin 远程库名称 默认是origin 一般用origin即可
git remote add origin https://github.com/yujuangithub0805/learngit.git
- 本地检出一个新的分支并推送到远程仓库
git push --set-upstream origin 分支名
- 删除远程仓库的关联
git remote remove origin
- 修改远程仓库的关联
git remote set-url origin <newurl>
- 本地提交到远程仓库
# 首次提交 加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master
# 非首次提交
git remote add origin
- 创建分之
git branch dev
- 切换分支
git checkout dev
- 创建分支并且切换
git checkout -b dev
- 根据某个commitId 创建分支
git checkout -b dev fd3687e
-创建分支并且关联远程分支
git checkout -b dev origin/dev
- 查看所有本地分支
# *表示当前分支
git branch
- 查看所有已经存在的分支(包括远程分支)
git branch -av
- 查看本地和远程分支的跟踪关系
git branch -vv
- 修改代码的跟踪关系
# 将当前分支跟踪到origin的master分支
git branch -u origin/master
- 把dev分支代码合并到当前分之
git merger dev
- 删除某个分支
git branch -d dev
- 查看提交记录
# --graph 查看分支合并图
$ git log --graph --pretty=oneline --abbrev-commit
- 将工作区暂存起来
git stash
- 查看所有的暂存的工作区
git stash list
- 恢复工作区
git stash apply # 不会把stash内容删除,需要执行git stash drop来删除
git stash pop # 会把stash内容删除
git stash apply stash@{0} # 恢复到指定工作区
- 复制一个特定的提交到当前分支
git cherry-pick commitId
- 本地分支和远程分支建立关联
git branch --set-upstream branch-name origin/branch-name;
- 本地创建tag
# 默认是当前分支的最后一次提交创建tag
git tag <tagName>
# 只想以某一个特定的提交创建tag
git tag -a <tagName> <commitId>
# 创建tag 并且标注指定标签信息
git tag -a <tagName> <commitId> -m 'XXXX'
- 推送tag 到远程
git push origin <tagName>
- 推送全部tag到远程
git push origin --tags
- 查看某个标签详细信息
git show <tagName>
- 查看本地所有tag
git tag
git tag -l
- 查看远程所有tag
git ls-remote --tags origin
- 删除标签
git tag -d <tagName>
- 删除远程tag
git push origin:<tagName>
- 检出标签
git checkout -b <branchName> <tagName>