几个基本概念
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 commit_id 根据这个id来找到那一时刻的版本 ,只要id有了你就可以任意的回退版本
-
用
git log
可以查看提交历史,以便确定要回退到历史的哪个版本。 -
要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
版本的切换实际上就是HEAD指针的改变而已,速度非常快
删除文件
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就得到保护,最后确保先分支正确时将两个分支合并就可以了。。
这里需要理解的是指针,每一个分支都有一个指针,然后HEAD指针指向当前的分支,你创建一个新的分支之后呢,任意修改他,确保正确将master merge过来,即便处了重大事故,就直接切换回master 就好了,很方便。删除分支就是将相关的那个指针删掉了。
创建分支
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name>
忽略文件
.gitignore中加入忽略的文件名 例如.class,这些就不会出现在untraced file 文件列表中烦你了了