git使用
版本库
repository
普通命令
git init
初始化仓库 可以在空文件夹 也可以在非空文件夹git add xxx.xx
把xxx文件添加到版本库git commit -m "提交的备注信息"
把文件提交到版本库
git add
将文件添加到暂存区,此时文件并没有被添加到当前分支中,使用git commit
将暂存区中的文件提交到当前分支。git add
可以多次执行,添加多个文件
git status
查看版本库的状态git diff xxx.xx
查看xxx文件的具体修改内容git log
查看最近到最远的提交记录git log --pretty=oneline
简化历史记录展示git reset --hard HEAD^
回退到上一个版本
HEAD^^
上上一个版本
HWAD~100
上一百个版本
git reset --hard 1094a
切换到commit id
为1094a的版本,使用git log
可以看到commit id
,真正的id
很长,在切换的时候不用写全,只写前几位就行了git reflog
查看每一次的命令,使用它可以看到每一次的操作 并看到哥哥版本的commit id
git checkout --xxx.xx
让文件回到最近一次git commit
或者git add
时的状态git reset HEAD xxx.xx
把暂存区的文件放回工作区git rm xxx.xx
git commit -m '删除xx文件'
删除文件
远程仓库
-
创建
SSH Key
ssh-keygen -t rsa -C "邮箱"
-
一路回车在
.ssh
目录里生成id_rsa
id_rsa.pub
两个文件,前者是私钥,后者是公钥,将公钥提交到自己使用的远程版本库中 -
远程库创建
-
git remote add origin 远程库地址
本地库关联远程库 -
git push -u origin master
第一次推送分支内容git push origin master
以后推送内容 -
git clone 远程库地址
从远程库克隆版本库 -
git remote rm orgin
删除与远程库的链接
分支
- 主干
master
当前分支HEAD
- 用
master
指向当前提交 再把HEAD
指向master
git checkout -b dev
创建并切换到dev
分支git branch dev
git checkout dev
创建并且换到dev
分支git branch
查看当前分支 列出所有分支 当前分支前面有*
号git merge 分支名
切换其他分支到当前
分支git branch -d 分支名
删除某分支git log --graph --pretty=oneline --abbrev-commit
查看分支合并图git merge --no-ff -m '提交信息' dev
禁用fast forward
git stash
储藏功能 把当前工作区的文件改动保存起来git stash list
储藏区的列表git stash apply
恢复储藏区的内容,但是不会删除储藏区的内容git stash pop
回去储藏区的内容,同时删除储藏区的内容git stash drop
删除储藏的内容git stash apply stash列表中key值
恢复指定的储藏区文件git branch -D 分支名
强行删除一个没有合并的分支git remote
查看远程库信息git remote -v
查看远程库详细信息 包含推送和抓取信息git checkout -n branch-name orgin/branch-name
在本地创建于远程分支对应的分支git bbranch --set-upstream branch-name origin/branch-name
建立本地分支和远程分支的关联git pull
从远程抓取分支
标签
git tag tagname
新建一个标签git tag tagname 提交id
在指定提交上打一个标签git show tagname
查看标签信息git tag -a tagname -m '标签信息' 提交id
带有说明的标签git tag
查看所有标签git tag -d tagname
删除没有推送的标签标签git push origin <tagname>
推送某个标签到远程goy push origin ---tags
推送所有标签到远端- 删除远端的标签先删除本地的,再删除远程的
git tag -d v0.9
git push origin :refs/tags/v0.9
忽略文件
.gitignore
git忽略文件配置git add -f XX.XX
强制添加忽略掉的文件到版本库git check-ignore -v xx.xx
检测规则问题