zoukankan      html  css  js  c++  java
  • Git简单教程

    简介

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,

    可以有效、高速的处理从很小到非常大的项目版本管理。

    安装

    由于本人是Windows平台,所以这里安装的是Windows平台下的工具。

    点击https://git-scm.com/download/win下载

    如果网速太慢可以百度搜索“git下载”。

    下载完成之后一路next就可以了,

    安装完成后,开始菜单找到"git"->"Git Bash",

    在命令行输入

    git --version
    

    看到类似如下结果,说明我们安装成功了。

    git_bash_img

    安装完成后,还需要一点设置,在打开的git bash命令行中输入

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    

    注意把上面改成自己的名字和邮箱地址

    git config命令的--global参数,表示你这台机器上所有的Git仓库都会使用这个配置,

    当然也可以对某个仓库指定不同的用户名和Email地址。

    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

    使用github

    我们希望项目不只是在本地,只有有网,哪里都可以获取自己的项目,
    GitHub 正是这样一个面向开源及私有软件项目的托管平台。
    我们可以把自己的项目放在这个平台上,可以和其他人维护项目。

    后面会讲git的基本操作,你也可以直接到后面查看。作为一般流程,这里让我们先注册一个github账号

    进入github网站,点击sign up

    注册github

    填写信息后点击"create an account" 按钮

    注册github

    之后进入到我们的首页

    github首页

    这样我们已经成功拥有了一个github账号,让我们正式开始吧~

    简单说下仓库的概念,仓库的英文名是repository,你可以简单理解成一个目录,
    这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,
    以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

    点击上面的+号,新建一个仓库
    github首页

    输入我们的仓库名称后,点击下面"create repository"按钮即可创建一个仓库
    仓库信息

    我们可以看到这个仓库是空的,什么都没有。
    空仓库

    接下来,我们回到本地git上。

    克隆仓库

    由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以还需要一点设置:

    回到git bash命令窗口,创建SSH key:

    $ ssh-keygen -t rsa -C "youremail@example.com"
    

    你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

    如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    登录你的github,进入setting,点击"SSH and GPG keys",点击右上角"New SSH Key",tite随便填,Key文本框里粘贴id_rsa.pub文件的内容,最后点击"Add SSh Key"即可。
    填写公钥

    可以看到我这里已经有两个了,一个家里一个公司,这样就可以两边同步信息了。

    为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

    接下来输入

    cd e:
    

    切换目录,执行

    git clone git@github.com:tenny-peng/test.git
    

    稍等一会,就可将github上的项目克隆到本地

    本地仓库

    这里我选的e盘根目录,你可以自己修改,注意:选择的目录下不可以有仓库同名目录
    如我的e盘下不能有test这个目录,不然在克隆时会报错。

    克隆仓库
    这里有一个警告,说我们的仓库是空的,不用管它,我们马上会添加文件。

    添加文件

    使用Windows的童鞋要特别注意:

    千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了
    一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf
    (十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,
    明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载
    Notepad++代替记事本,不但功能强大,而且免费!记得把notepad++的默认编码设置为UTF-8
    without BOM即可。

    在仓库test文件目录下,我们先编写一个readme.txt文件,内容如下:

    Git is a version control system.
    Git is free software.
    

    新建文件

    这里我们可以看到test目录下有一个隐藏的.git目录(看不到可自行百度“windows查看隐藏文件方法”),这个就说明此目录是由git管理的仓库了,如果删除了这个隐藏的目录,那个git也就不认识这个目录了,也不能对此目录下的文件进行管理了。

    回到命令行,输入

    git add readme.txt
    

    添加文件

    什么反馈信息也没有?那就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

    使用

    git status
    

    可查看当前仓库状态

    添加状态

    我们发现提示有新文件,但是这样还不够。

    我们继续输入

    git commit -m "add readme.txt"
    

    这样才把文件提交到仓库,再次输入"git status"查看状态

    提交状态

    简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

    git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。

    推送

    这里我就在仓库里新增了一个文件,当然还会有修改,删除操作。其实这样就可以管理自己的项目了。但是,我们似乎忘记了github。对,我们需要的是随时随处可获取,所以我们需要把本地仓库的内容同步到github这个托管平台。

    当你从远程仓库克隆时,实际上Git自动把本地的master分支(分支后面再讲,简单理解为仓库的多个版本,默认一个主分支)和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

    要查看远程库的信息,输入

    git remote
    

    git remote -v
    

    获取更详细信息

    远程信息

    上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

    接下来我们把本地改动(这里新增了一个文件,对于git,新增,修改,删除,都属于改动)推送到远程仓库。

    git push origin master
    

    推送分支

    刷新浏览器中我们的github主页,可以看到,readme.txt文件已经同步到远程仓库了。
    查看远程分支

    以上我们就使用git创建了自己的仓库,并将其同步到远程服务器上,以便我们在其它地方,或其他人获取。


    参考:

    廖雪峰的git教程

    git互动百科

    github互动百科

  • 相关阅读:
    Spring 梳理-启用MVC
    Spring 梳理-MVC-配置DispatcherServet和ContextLoaderListener
    Spring 梳理-MVC-前端控制器DispatchServlet及URL请求处理过程
    Spring 梳理-AOP
    Spring 梳理-运行时动态注入bean
    Spring 梳理-bean作用域
    Spring 梳理-profile与条件化定义bean
    Spring 梳理-bean配置与装配
    Spring 梳理-容器(container)
    iframe
  • 原文地址:https://www.cnblogs.com/tenny-peng/p/11541938.html
Copyright © 2011-2022 走看看