zoukankan      html  css  js  c++  java
  • github网站介绍、并使用git命令管理github(详细描述)

    本章学习:

    • 1)熟悉github网站
    • 2)通过git命令远程管理github,
    • 3)git命令使用ssh key密钥无需输入账号密码 

     


     1.首先我们来熟悉github网站

    1.1 注册github

    登录http://github.com/,然后点击sign up,来注册账户:

     

    注册好了,以及验证邮箱后,然后进入github主页:

     

    1.2点击start a project(启动第一个项目)

     

    1.3创建好后,就会跳转到刚刚创建好的test2仓库(项目)主页,如下两张图所示

    • 图1:

     

    • 图2:

     

    先来介绍下上图常用的几个单词

    • repostory

      仓库,也就是项目的意思,有多个项目就代表有多个仓库

    • star

      收藏项目,收藏的数目越多,说明项目越好

    • fork

      将源作者的项目克隆一份到自己的项目中

    • pull request

      拉请求,指如上图的pull request.

      比如:别人通过fork你的项目后,并改进了项目,向你发送了new pull request请求,

      然后你点击pull request按钮,进去后,会出现如下图所示:

           

      再点击Merge pull request,则可以将改进的内容合并到自己的项目里,

    • watch

      关注项目,当你关注的某个仓库更新时,便会通知在你的github主页上

    • lssues

      问题,点击进去就可以看到所有人提出的问题,比如项目有bug等.

      当自己想发表问题时,则点击lssues->new lssues,如下图所示:

            

    1.4接下来,我们点击仓库主页的create new file,来创建一个文件:

     

    提交后,便会返回我们test2仓库主页里:

     

    然后点击commits提交按钮,便可以看到刚刚创建main.c的详细信息:

     

    PS:当我们错误删除了一个文件,也可以通过commits按钮,来找到以前删除的文件

    1.5 学习如何来更改仓库名称和删除仓库

    在仓库主页里点击settings(仓库设置),如下图所示(以test3为例):

     

    然后便会跳转到下个界面,就可以更改仓库名称了:

     

    继续往下翻,就可以找到删除仓库了:

     

    2.使用git管理github

    2.1安装git

    下载地址:https://www.git-scm.com/download/win

    (若慢的话,则进入http://www.wmzhe.com/soft-38801.html下载)

    下载好后,直接默认安装即可,若只喜欢命令行模式,则在组件界面取消git gui here即可,如下图所示:

     

    安装好后,如下图所示,即可通过linux命令来操作git命令:

     

    若在linux上安装git,直接输入:

    apt-get install git

    (linux下载时,若出现error:403,可以试试vi /etc/resolv.conf,将nameserver地址改为: 114.114.114.114)

    2.2 配置git

    git config --global user.name "lifeyx"               //个人账号
    git config --global user.email 123456@qq.com         //个人邮箱地址

     上面的--global选项,表示以后管理git库时,默认使用上面的用户信息,也可以通过git config -l 来查看配置信息

    2.3 git命令介绍

    1)介绍之前,首先来讲解下git的3个区域如下图所示

     

    上图的git仓库,是指本地仓库,不会更新到远程仓库(github网页上的仓库),需要使用git push -u origin master命令才行

    2)然后来讲解下git常用命令

    git init   

    对当前目录进行git管理,该目录便会成为工作区,并在当前目录下会出现个.git隐藏目录.

    该.git里会保存git所需要的数据和资源,也就是git仓库和暂存区都会保存在.git里

    git clone https://github.com/lifeyx/test2.git

    克隆复制远程仓库到当前目录,生成test2文件夹,里面会自动创建.git目录,并保存远程仓库信息

    该远程仓库地址通过下图的红框里获取:

     

    git status

    查看工作目录下文件的状态,是否add添加到了暂存区,以下图为例:

     

    git add file

    将工作区修改的文件添加到暂存区,也可以使用git add .  将所有修改的文件进行添加

    git rm file 

    将暂存区的文件删除掉,若工作区文件存在,则需要使用git rm -f file来强制删除掉

    git commit -m “提交描述”

    将暂存区里的文件提交到本地仓库,若暂存区某个文件被删除掉,则会删除仓库里的文件

    git commit -am “提交描述”

    -a:跳过暂存区,git自动将工作区里记录的所有文件添加到暂存区并一起提交,从而跳过git add步骤

    git reset HEAD^1

    撤销commit,如果想修改commit时的文件,则使用上面命令撤销

    git remote add origin https://github.com/lifeyx/test3.git

    添加远程仓库(origin),也就是关联本地仓库和github仓库,该远程仓库地址通过下图的红框里获取:

     

    git push origin master

    推送(同步)数据到远程仓库,若是本地上传,必须先使用上个命令来指定远程仓库地址(origin),

    若是从远程仓库克隆复制的,则不需要,因为.git里会自动保存远程仓库地址.

    2.4  git管理远程仓库-实例1

    实例1步骤,通过创建新的远程仓库,然后将本地的数据推送(同步)到远程仓库里

    1)首先创建新的远程仓库,以test3为例

     

    然后找到远程仓库地址为: https://github.com/lifeyx/test3.git

     

    2)进入github命令行,输入

    mkdir test3
    
    cd test3
    
    echo "项目描述test3" >> README.md       
    
    git init                       //初始化git
    
    vi 1.txt                       //创建1.txt
    
    git add README.md              //添加README.md     
    
    git add 1.txt                 //添加1.txt
    
    git commit -m "第一次提交文件"   //提交到本地仓库
    
    git remote add origin https://github.com/lifeyx/test3.git  //连接远程仓库地址
    
    git push origin master       //上传到远程仓库地址,并输入账号密码

    3)查看结果

     

    2.5 git管理远程仓库-实例2

    实例2步骤,就是通过克隆来将远程仓库下载到本地,然后本地修改数据后,并推送(同步)数据到远程仓库

    1)通过以前的远程仓库test2为例

    如下图所示,可以看到test2仓库更新时间都是处于1天前的:

     

    然后通过上图的绿色按钮,找到test2地址为: https://github.com/lifeyx/test2.git

    2)进入github命令行,输入

    git clone https://github.com/lifeyx/test2.git   //下载test2仓库
    
    cd test2                                       //进入仓库
    
    vi 1.txt                                       //创建1.txt
    
    git add 1.txt                                  //添加1.txt
    
    git commit -m "第二天提交文件"                   //提交到本地仓库
    
    git push origin master                     //上传到远程仓库地址,并输入账号密码

    PS:

    由于git clone会自动生成.git隐藏目录,所以上面无需git init命令初始化。

    而且.git目录里保存了远程仓库地址,所以上面无需git remote命令连接远端。

    3)查看结果

     

    3.每次上传到远程仓库地址时,都要输入账号密码,是不是很麻烦?

    接下来便通过ssh key密钥,使主机与服务器连接连接, 这样就不用每次输入账号密码

    3.1生成ssh key

    首先通过ls ~/.ssh命令,查看是否已有ssh key,若有的话,先备份,然后通过rm -rf ~/.ssh来删除

    1)输入,创建密钥

    ssh-keygen -t rsa -C "123456@qq.com"    // "..."里输入邮箱号

    2)然后会提示设置密码,直接连按3个回车,表示密码为空

    3)将新生成的key添加到ssh-agent中

    eval  "ssh-agent -s"
    
    ssh-add ~/.ssh/id_rsa

    4)若显示Could not open a connection to your authentication agent.,则继续输入

    ssh-agent bash
    
    ssh-add ~/.ssh/id_rsa

    如下图所示,出现Identity added字段,则表示写入成功,ssh key公钥便保存在id_rsa.pub文件中了:

     

    5)然后通过cat ~/.ssh/id_rsa.pub 将ssh key公钥打印出来,并复制

     

    3.2将复制的ssh key公钥添加到github中

     

    跳转页面后,title标题随意写,将ssh key复制到key框里即可

    3.3测试ssh key

    输入ssh git@github.com,如下图所示,显示Hi  youname! ,则表示成功了

     

    3.4成功后,就可以使用git协议来下载仓库. 还是以test2仓库为例

    1)首先查看test2仓库的ssh协议的地址(之前是http协议地址)

     

    如上图所示,点击红框后, 前缀https://变为了git@

    2)然后进入github命令行,来测试

    git clone git@github.com:lifeyx/test2.git    //下载test2仓库
    
    cd test2                                    //进入仓库
    
    vi 2.txt                                   //创建2.txt
    
    git add 2.txt                             //添加2.txt
    
    git commit -m "第二天提交文件"             //提交到本地仓库
    
    git push  origin master                 //无需输入密码来上传

    4.git管理仓库

    打补丁:

    git diff > new.patch

    如果是当前仓库有了新文件,想把新文件也打进补丁(新文件必须需要git add之后才行),则输入:

    git diff --cached  > new.patch

    查看状态:

    Git status   

     

    查看本地修改的哪些东西

    git diff Makefile      //以查看上图的Makefile为例

    添加暂存区

    git add kernel/arch/mips/xburst/soc-x1000/chip-x1000/ap60pro/ap60pro/board.h //添加到暂存区
    
    git add .                             //添加所有修改过的文件

    撤回修改过的文件

    git checkout Makefile            //撤回Makefile的修改,如果是之前不存在的文件,则会撤销失败

    将暂存区里的文件撤回到 修改文件中

    git reset HEAD u-boot/drivers/video/jz_lcd/jz_lcd_v13.c  //将jz_lcd_v13.c从暂存区撤销掉

    提交到本地仓库

    git commit  -m  "ap60pro update: compatible with old and new screens" //添加到本地仓库(但未上传)   -m 后面跟提交的信息描述

    撤销commit提交

    git reset HEAD^1

    同步远程仓库(当别人在远程仓库进行修改后,本地没有更新时)

    git pull --rebase origin master

    上传远程仓库

    git push origin master
        //上传远程仓库,由于是使用git clone,所以不需要使用git remote连接远程仓库
        //如果git push失败,打印: error: failed to push some refs to 'git@192.168.1.8:X1000.git',则使用git pull 同步一次

    查看提交远程仓库的历史记录

    tig      //如下图所示:

    其中” [master] {origin/master} {origin/HEAD} Merge branch 'master' of 192.168.1.8:X1000”,是使用git pull解决分支不同(Merge branch)时候提交的

     

    如果想查看提交的某一次具体信息,也可以使用”git show  [hash值]“来查看

    git show示例:

    1)通过tig,找到近期提交一次的记录hash值:

    2)使用git show 17c7a097834439d0e9bf659e5e71ce313832c032,便可以查看具体提交的内容了

     

     git pull如果打印error: You have not concluded your merge (MERGE_HEAD exists).时

    1. 直接commit,再提交一次,之后再pull或merge就可以顺利进行。
    2.放弃本地其它修改,直接覆盖,输入: 

    git reset --hard

    git pull

     

    查看每一行是哪次提交最后修改的

    git blame filename  

    列出文件的所有修改记录

    git log -p filename   

  • 相关阅读:
    C++中的虚函数、重写与多态
    STL中_Rb_tree的探索
    C++11 新用法
    FJUTOJ-3682 LRU算法的实现2 (链表+哈希)
    Windows系统对拍程序
    FOJ-2013 A Short Problem (前缀和)
    HDU-2036 改革春风吹满地 (数学)
    Ubuntu下PostgreSQL的安装和简单操作
    Ubuntu,Linux下goldendict词典安装及配置
    搜狗输入法输入汉字时候选栏乱码
  • 原文地址:https://www.cnblogs.com/lifexy/p/8353040.html
Copyright © 2011-2022 走看看