Git

来源:互联网 发布:2015人口普查数据 编辑:程序博客网 时间:2024/05/21 05:20

声明

  • 这是学习廖雪峰的git教程的笔记.

概念

  • Git是目前世界上最先进的分布式版本控制系统
  • GIt是在2005年由Linus推出,用来管理内核源码
  • Github在2008年推出,用来管理开源项目,也就是一个git服务器,你可以从这个服务器上克隆版本库到本机
  • Git分布式是

    1. 各自电脑上有一个版本库.不需要联网,可工作.
    2. 修改之后可以推送修改的内容给对方,完成协作
    3. 版本库可以从其他电脑直接拷贝
    4. 分布式也有中央服务器,因为多台协作电脑不在同一个局域网内的问题,和电脑不开机等问题
    5. 中央服务器可以让推送修改更容易,但是推送修改还有其他方式(拷贝,较麻烦)
    6. 源代码开放,注意,free指的是源代码开放,并不是免费.
  • 工作区是你敲击git init时所在的目录,但不包括目录下的.git文件夹
  • 工作区下的.git文件夹是版本库
  • 版本库里面的stage文件夹就是暂存区

本地使用方法

1/安装

$ sudo apt-get install git

2/设置

$ git config --global user.name "lisider"$ git config --global user.email "example@163.com"

3/ 创建版本库

mkdir gitproject;cd gitprojectgit init //这时候会在目录下生成一个.git的目录,注意不要修改.git目录及.git目录中的文件//之后在工作目录在下gitproject运行的git命令都是在修改该目录下的.git目录中的文件

4/将选中的修改提交到暂存区

git add readme.txt //该步骤是为了选中文件,为下一步的git commit 做准备  //因为我们有选择提交内容的必要,所以才会新增这一步骤  //这一步也有解释为将工作区文件提交到暂存区stage

5/提交暂存区到版本库

git commit -m "wrote a readme file"//一次提交  //-m后面输入的是本次提交的说明  //这一步也有解释为  将暂存区文件提交到版本库中

6/查看仓库状态

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 <file>..." to update what will be committed)#   (use "git checkout -- <file>..." 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 <file>..." to unstage)##       modified:   readme.txt#

7/比较文件

git diff    #是工作区(work dict)和暂存区(stage)的比较git diff --cached    #是暂存区(stage)和分支(master)的比较

8/查看版本历史记录

git log //该命令可以显示所有的提交历史,最上面的为最近的提交,以当前版本为base,显示的只是版本的信息$ git logcommit 3628164fb26d48395383f8f31179f24e0882e1e0Author: Michael Liao <askxuefeng@gmail.com>Date:   Tue Aug 20 15:11:49 2013 +0800    append GPLcommit ea34578d5496d7dd233c827ed32a8cd576c5ee85Author: Michael Liao <askxuefeng@gmail.com>Date:   Tue Aug 20 14:53:12 2013 +0800    add distributedcommit cb926e7ea50ad11b8f9e909c05226233bf755030Author: Michael Liao <askxuefeng@gmail.com>Date:   Mon Aug 19 17:51:55 2013 +0800    wrote a readme file

9/回退版本

git reset --hard HEAD^//git reset --hard HEAD~1

10/恢复到指定版本

git reflog //查看操作记录,以时间为base,显示的是commit 和 reset 的信息git reset --hard 3628164//可以通过上一步查找到commit id,然后恢复到指定版本.

10/恢复文件到之前状态

git checkout -- file //恢复到当前版本或者git add后的内容

11/撤销git add

git reset HEAD readme.txt //撤销之前的git add或者 git rm,敲击之后,缓存区没有该内容

12/提交删除

git rm test.txt         //从缓存区中删除该文件git commit -m "remove test.txt" //提交.

远程使用方法

1/注册github账号

2/在本地创建密钥

ssh-keygen -t rsa -C "example@163.com"

3/在github添加key

Account settings    SSH Keys      Add SSH Key        //任意title        //可以文本框里添加id_rsa.pub文件中的内容  //创建密钥并在你账户中添加密钥是为了防止别人能推送到你的远程库

4/添加远程库

Create a new repo

5/关联本地库与远程库

git remote add origin git@github.com:lisider/project.git

6/首次推送本地库到远程库

git push -u origin master  //如果本地库和远程库不一样,会冲突,会推送失败,加个选项 -f 强制推送

7/之后推送本地库到远程库

git push origin master

8/克隆远程库到本地库

git clone git@github.com:lisider/project.git  //会在工作目录创建一个gitskill文件夹,以及文件夹中的文件.
原创粉丝点击