<style>html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video { margin: 0; padding: 0; border: 0 }
body { font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 1.6; color: #333; background-color: #fff; padding: 20px; max-width: 960px; margin: 0 auto }
body>*:first-child { margin-top: 0 !important }
body>*:last-child { margin-bottom: 0 !important }
p,blockquote,ul,ol,dl,table,pre { margin: 15px 0 }
h1,h2,h3,h4,h5,h6 { margin: 20px 0 10px; padding: 0; font-weight: bold }
h1 tt,h1 code,h2 tt,h2 code,h3 tt,h3 code,h4 tt,h4 code,h5 tt,h5 code,h6 tt,h6 code { font-size: inherit }
h1 { font-size: 28px; color: #000 }
h2 { font-size: 24px; border-bottom: 1px solid #ccc; color: #000 }
h3 { font-size: 18px }
h4 { font-size: 16px }
h5 { font-size: 14px }
h6 { color: #777; font-size: 14px }
body>h2:first-child,body>h1:first-child,body>h1:first-child+h2,body>h3:first-child,body>h4:first-child,body>h5:first-child,body>h6:first-child { margin-top: 0; padding-top: 0 }
a:first-child h1,a:first-child h2,a:first-child h3,a:first-child h4,a:first-child h5,a:first-child h6 { margin-top: 0; padding-top: 0 }
h1+p,h2+p,h3+p,h4+p,h5+p,h6+p { margin-top: 10px }
a { color: #4183C4; text-decoration: none }
a:hover { text-decoration: underline }
ul,ol { padding-left: 30px }
ul li>:first-child,ol li>:first-child,ul li ul:first-of-type,ol li ol:first-of-type,ul li ol:first-of-type,ol li ul:first-of-type { margin-top: 0px }
ul ul,ul ol,ol ol,ol ul { margin-bottom: 0 }
dl { padding: 0 }
dl dt { font-size: 14px; font-weight: bold; font-style: italic; padding: 0; margin: 15px 0 5px }
dl dt:first-child { padding: 0 }
dl dt>:first-child { margin-top: 0px }
dl dt>:last-child { margin-bottom: 0px }
dl dd { margin: 0 0 15px; padding: 0 15px }
dl dd>:first-child { margin-top: 0px }
dl dd>:last-child { margin-bottom: 0px }
pre,code,tt { font-size: 12px; font-family: Consolas, "Liberation Mono", Courier, monospace }
code,tt { margin: 0 0px; padding: 0px 0px; white-space: nowrap; border: 1px solid #eaeaea; background-color: #f8f8f8 }
pre>code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent }
pre { background-color: #f8f8f8; border: 1px solid #ccc; font-size: 13px; line-height: 19px; overflow: auto; padding: 6px 10px }
pre code,pre tt { background-color: transparent; border: none }
kbd { background-color: #DDDDDD; background-image: linear-gradient(#F1F1F1, #DDDDDD); background-repeat: repeat-x; border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD; border-style: solid; border-width: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 10px; padding: 1px 4px }
blockquote { border-left: 4px solid #DDD; padding: 0 15px; color: #777 }
blockquote>:first-child { margin-top: 0px }
blockquote>:last-child { margin-bottom: 0px }
hr { clear: both; margin: 15px 0; height: 0px; overflow: hidden; border: none; background: transparent; border-bottom: 4px solid #ddd; padding: 0 }
table th { font-weight: bold }
table th,table td { border: 1px solid #ccc; padding: 6px 13px }
table tr { border-top: 1px solid #ccc; background-color: #fff }
table tr:nth-child(2n) { background-color: #f8f8f8 }
img { max-width: 100% }</style>
几个基本概念
1,创建本地版本库 git init
2,git add filename 文件添加到本地版本库
3,git commit -m "描述信息" 将add的那些文件给提交到本地的版本库
4, git status 当前版本库的状态
5,git diff filename 查看文件的内容的差异
6,git log 版本库的提交记录 git log --pretty=oneline 一次显示一行
7,在git中 HEAD表示当前版本 ,HEAD^上一版本 HEAD^^以此类推 HEAD~100之前100个版本
8,git reflog 查看命令历史
工作区和暂存区
工作区就是你本地的项目目录
.git是版本库,版本库中有stage(或者是index)称为暂存区
git add 实际上是把工作区的文件添加到暂存区
git commit是吧暂存区的内容提交到当前分支
untraced file
就是存在于工作区,但是不在版本库中也没有add到暂存区的文件
撤销修改
git checkout -- file 丢弃工作区的修改,使得文件与版本库中一致。即便是工作区里面的文件被删除了,你也可以从版本库中回复过来
git reset HEAD file可以把暂存区的修改撤销掉,撤销当前没有commit的add操作
git reset --hard HEAD^ commit之后。回退到上一版本
git reset --hard id 根据这个id来找到那一时刻的版本
删除文件
git rm file 这里是把删除提交到暂存区,如果没有commit,就可以用git reset HEAD file 撤销。如果已经commit就没办法了,只能回滚到上一版本去找到这个文件了
创建远程仓库
介绍使用github的方法,github是git托管服务器
创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看
这个目录下有没有idrsa和idrsa.pub这两个文件,如果已经有了,可 直接跳到下一步。如果没有,ssh-keygen -t rsa -C "youremail@example.com"
登陆github。点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
添加远程库
前提是你已经有了本地库
git remote add origin git@github.com:michaelliao/learngit.git
git push origin master 把本地库推送到远程库,第一次推送要加上-u
从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
git 分支
我们看到的默认分支都叫master ,实际上你可以使用其他的分支,这样你原来的master就得到保护,最后确保先分支正确时将两个分支合并就可以了。。。
创建分支
查看分支:git branch
创建分支:git branch name>
切换分支:git checkout name>
创建+切换分支:git checkout -b name>
合并某分支到当前分支:git merge name>
删除分支:git branch -d name>
忽略文件
.gitignore中加入忽略的文件名 例如.class,这些就不会出现在untraced file 文件列表中烦你了了
git知识要点学习