版本库
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 idgit checkout --xxx.xx让文件回到最近一次git commit或者git add时的状态git reset HEAD xxx.xx把暂存区的文件放回工作区git rm xxx.xxgit commit -m '删除xx文件'删除文件
远程仓库
-
创建
SSH Keyssh-keygen -t rsa -C "邮箱" -
一路回车在
.ssh目录里生成id_rsaid_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 devgit checkout dev创建并且换到dev分支git branch查看当前分支 列出所有分支 当前分支前面有*号git merge 分支名切换其他分支到当前分支git branch -d 分支名删除某分支git log --graph --pretty=oneline --abbrev-commit查看分支合并图git merge --no-ff -m '提交信息' dev禁用fast forwardgit 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.9git push origin :refs/tags/v0.9
忽略文件
.gitignoregit忽略文件配置git add -f XX.XX强制添加忽略掉的文件到版本库git check-ignore -v xx.xx检测规则问题