本文共 3012 字,大约阅读时间需要 10 分钟。
Git是目前世界上最先进的分布式版本控制系统
GIt是在2005年由Linus推出,用来管理内核源码
Github在2008年推出,用来管理开源项目,也就是一个git服务器,你可以从这个服务器上克隆版本库到本机
Git分布式是
工作区是你敲击git init时所在的目录,但不包括目录下的.git文件夹
工作区下的.git文件夹是版本库
版本库里面的stage文件夹就是暂存区
##本地使用方法
###1/安装
$ sudo apt-get install git
$ git config --global user.name "lisider"$ git config --global user.email "example@163.com"
mkdir gitproject;cd gitprojectgit init //这时候会在目录下生成一个.git的目录,注意不要修改.git目录及.git目录中的文件//之后在工作目录在下gitproject运行的git命令都是在修改该目录下的.git目录中的文件
git add readme.txt //该步骤是为了选中文件,为下一步的git commit 做准备 //因为我们有选择提交内容的必要,所以才会新增这一步骤 //这一步也有解释为将工作区文件提交到暂存区stage
git commit -m "wrote a readme file"//一次提交 //-m后面输入的是本次提交的说明 //这一步也有解释为 将暂存区文件提交到版本库中
git status //该命令让你看到那些文件被修改了 //有三种状态 //状态1 所有的文件都已经被git commit,且该目录没有被修改# On branch masternothing to commit (working directory clean) //状态2 有文件被修改,但没被git add# On branch master# Changes not staged for commit:# (use "git add..." to update what will be committed)# (use "git checkout -- ..." to discard changes in working directory)## modified: readme.txt#no changes added to commit (use "git add" and/or "git commit -a") //状态3 有文件被修改,且被git add,但没被git commit# On branch master# Changes to be committed:# (use "git reset HEAD ..." to unstage)## modified: readme.txt#
git diff #是工作区(work dict)和暂存区(stage)的比较git diff --cached #是暂存区(stage)和分支(master)的比较
git log //该命令可以显示所有的提交历史,最上面的为最近的提交,以当前版本为base,显示的只是版本的信息$ git logcommit 3628164fb26d48395383f8f31179f24e0882e1e0Author: Michael LiaoDate: Tue Aug 20 15:11:49 2013 +0800 append GPLcommit ea34578d5496d7dd233c827ed32a8cd576c5ee85Author: Michael Liao Date: Tue Aug 20 14:53:12 2013 +0800 add distributedcommit cb926e7ea50ad11b8f9e909c05226233bf755030Author: Michael Liao Date: Mon Aug 19 17:51:55 2013 +0800 wrote a readme file
git reset --hard HEAD^//git reset --hard HEAD~1
git reflog //查看操作记录,以时间为base,显示的是commit 和 reset 的信息git reset --hard 3628164//可以通过上一步查找到commit id,然后恢复到指定版本.
git checkout -- file //恢复到当前版本或者git add后的内容
git reset HEAD readme.txt //撤销之前的git add或者 git rm,敲击之后,缓存区没有该内容
git rm test.txt //从缓存区中删除该文件git commit -m "remove test.txt" //提交.
ssh-keygen -t rsa -C "example@163.com"
Account settings SSH Keys Add SSH Key //任意title //可以文本框里添加id_rsa.pub文件中的内容 //创建密钥并在你账户中添加密钥是为了防止别人能推送到你的远程库
Create a new repo
git remote add origin git@github.com:lisider/project.git
git push -u origin master //如果本地库和远程库不一样,会冲突,会推送失败,加个选项 -f 强制推送
git push origin master
git clone git@github.com:lisider/project.git //会在工作目录创建一个gitskill文件夹,以及文件夹中的文件.
转载地址:http://ytigi.baihongyu.com/