前言
Git在平时的开发中经常使用,整理Git使用全面的梳理。
基本内容
开始之前
请自行准备好Git工具以及配置好Git的基本配置
基础内容
基础概念
如下内容,在码云或者Github上新建仓库出现的内容,
mkdir demo
cd demo
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/will-we/demo.git
git push -u origin master
基础命令
git init
创建git仓库
git add
把文件添加进去,实际上就是把文件修改添加到暂存区
git status
查看仓库当前的状态
git diff
查看difference
git log
显示从最近到最远的提交日志
git reset --hard
版本回复,格式:git reset --hard commit的Id号
git reset --hard HEAD^
回到上次提交的版本
git reflog
记录在本地存储库中更新分支和其他引用的提示
git checkout -- file
文件在工作区的修改全部撤销
git reset HEAD <file>
将当前版本上文件恢复
git rm
删除暂存区的文件(直接工区删除后,提交版本库也删除)
远程仓库
开始之前,请配置本地与远程仓库的相关配置,秘钥等配置
git remote
查看远程库的信息
git remote -v
显示更详细的信息
git push origin master
推送到远程主分支
> 推送失败,先用git pull抓取远程的新提交,有冲突先解决冲突
分支管理
基本命令
git checkout -b dev
创建并切换dev
分支
git branch
查看所有分支,当前分支*
表示
git branch <name>
创建分支
git merge
命令用于合并指定分支到当前分支
git branch -d <name>
删除分支
git branch -D <name>
强行删除分支(git branch -d <name>
删除操作时会该分支做合并,如果没有合并将出现错误)
git log --graph --pretty=oneline --abbrev-commit
看到分支的合并情况
stash命令
git stash
将工作备份后临时清理工作区为版本库,用于紧急修改缺陷场景
git stash list
查看备份的工作现场
git stash apply
恢复工作现场
git stash drop
删除之前的备份现场
git stash pop
先恢复再删除之前的备份
rebase命令
git rebase
作用 和git merge
的效果类似,但是git rebase
不再包含分支的提交信息最终log为一条直线
关于两者的区别可参考内容: git rebash 和 git merge 区别
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行;当然可以--absort
回复到rebase之前的状态。
$ git rebase --continue
冲突问题
“<<<<<<<” 表示冲突代码开始
“=======” 表示test与master冲突代码分隔符
“>>>>>>>" 表示冲突代码的结束
标签管理
git tag
显示标签列表
git tag <tagname>
添加轻标签
git log --decorate
显示包含标签资料的历史记录
git tag -a <tagname> -m '注解内容'
添加注解标签
git tag -n
显示标签的列表和注解
git tag -d <tagname>
删除标签
git push origin <tagname>
可以推送一个本地标签
git push origin --tags
可以推送全部未推送过的本地标签;
git push origin :refs/tags/<tagname>
可以删除一个远程标签
参考教程