Git 入门

旧城冷巷雨未停 提交于 2020-01-14 19:07:25

目录

参考资料

第一次使用

使用Git连接Github

参考资料

第一次使用

在第一次使用Git的时候需要做一些最小配置

  • 配置邮箱

    使用git config --global user.email "your-email" 命令配置,如图

     

     

  • 配置用户名

    使用git config --global user.name "your-name"命令配置,如图

     

     

  • 命令解释

    • git 指在git 命令行开始运行git 相关命令

    • config指在进行配置命令

    • --global 是指所进行的配置作用范围为全局,即所有计算机的所有用户,这里还能选择其他选项

      • --system 指所进行的配置作用范围为当前计算机用户

      • --local 指所进行的配置作用范围为当前仓库

    • 如果一时遗忘或者想要查看可选命令,可以在输入git config 后快速两次按下Tab键,即可在屏幕上看到可选命令列表

       

       

    • 如果想要查看更加详细的命令提示 ,可以在输入部分命令后添加--help,会自动打开帮助文档中对相关命令的描述

       

       

       

       

      帮助文档在Git下载目录的 Git\mingw64\share\doc\git-doc 下

    •  

  • 在上述命令配置完成后,即完成Git的初始配置,可以利用Git建立本地仓库管理文件

使用Git连接Github

连接前进行的配置

生成SSH 秘钥

配置SSH秘钥的原因

如何生成SSH秘钥

配置SSH秘钥的原因

  • 本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让远程仓库认证你SSH key,在此之前,必须要生成SSH key

如何生成SSH秘钥

在生成SSH秘钥之前首先要检查是否已经生成过SSH秘钥,如果已经生成SSH秘钥可以省略生成过程

  • 打开Git ,Git默认工作路径在Git Bash上方有显示

 

  • 如果Git 不是处于默认工作路径,可以使用命令cd <空格> ,即在cd后加一个空格,然后按下回车,即可回到默认工作路径

  • 在Git默认工作路径下可以使用ll -a 查看默认工作路径下包含隐藏文件以及配置文件的所有文件信息,查看有无.ssh目录

  • 如果有.ssh目录,并不能确定已经生成SSH秘钥,需要使用命令cd .ssh进入.ssh路径下,继续使用命令ll -a查看.ssh目录下所含文件,如果所含id_rsa.pub文件,即说明已经生成SSH秘钥,使用命令cat id_rsa.pub命令即可查看SSH秘钥

    ** 上述过程总结为以下命令 **

     # 打开Git Bash
     ​
     #进入默认工作路径
     cd ~
        
     #尝试进入.ssh目录
     cd .ssh
     ​
     #如果不能成功进入,说明之前没有生成SSH秘钥
     ​
     #如果成功进入.ssh目录,尝试打开id_rsa.pub文件
     cat id_rsa.pub
     ​
     #如果没有任何东西显示,说明之前没有生成SSH秘钥或者生成的SSH秘钥损坏或遗失
     ​
     #如果有东西显示,复制SSH秘钥

     

    如果确认了没有SSH秘钥,则可以按照以下步骤生成

  • 进入Git Bsah

  • 输入命令ssh-keygen -t rsa -C "youremail" 生成ssh秘钥

    • 密钥类型可以用-t选项指定。如果没有指定则默认生成用于SSH-2RSA密钥。这里使用的是rsa。 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的 用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。 输入完毕后程序同时要求输入一 个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口 令。3次回车 即可完成当前步骤,此时[windows:c盘>用户>自己的用户名>.ssh, Linux:用户>.ssh]目录下已经生成好了。 本段来源:SSH配置公钥

  • 按照上述查找SSH秘钥并查看的方式得到生成的SSH秘钥

    上述过程可以用以下命令执行

     # 打开Git Bash
     ​
     #进入Git 默认工作路径
     cd ~
     ​
     #生成SSH秘钥
     ssh-keygen -t rsa  -C " your-email"
     #一直按回车
     ​
     ​
     #进入.ssh目录
     cd .ssh
     ​
     #查看SSH公钥
     cat id_rsa.pub

     

将SSH秘钥配置到Github账号(内含一些说明)

在经历上述步骤后将得到的SSH秘钥复制下来,配置到Github 当中去

  • 登录Github

  • 进入Seting

     

     

  • 进入SSH and GPG keys

     

     

  • 点击new SSH key

     

     

  • 输入标识符和SSH key

     

     

    Title 可以随意输入也可以使用被自动识别的

     

连接Github账号下的仓库

本地仓库连接远程仓库

  1. 建立本地仓库

    1. 在本地PC机建立管理一个文件夹

       

       

    2. 在Git中切换目录到新建立的文件夹内

       

       

    3. 使用以下命令初始化本地仓库

       git init 

       

       

      Initialized empty Git repository in 路径 表示已经在路径下初始化一个空的Git 仓库

    4. 使用以下命令为新建立的本地仓库添加远程仓库

       #git remote add  origin  远程仓库HTTPS或者SSH 
       ​
       #使用远程仓库HTTPS链接为本地仓库添加远程仓库连接
       git remote add origin https://github.com/SSBADD/study.git

       

       

    5. 使用以下命令将本地仓库内容推送到远程仓库

       git push -u origin master 

       

       

    6. 我们发现上述命令执行过后出现了错误

      经过百度得知错误出现的是因为我们新建立的仓库为空

      这里为空的意思是仓库内没有添加任何文件或者在仓库所在路径下添加文件后没有使用Git去管理文件,我们通过以下步骤演示为仓库添加文件的方式

      1. 使用以下命令在仓库所在路径下新建立一个markdown文件

         touch hi.md

         

         

        此处也可以建立其他文件,或者从其他的地方复制过来,这里使用touch命令是为了尽可能的介绍Git内的命令,以下步骤中使用Vi/Vim编辑文件内容也是出于这个目的

        1. 使用以下命令编辑 hi.md 文件

         vi hi.md #使用Git自带的vim功能打开hi.md文件
         ​
         #进入状态1后如图所示
         #在状态1下按下 i 键,进入编辑模式,此时屏幕应该显示为状态2
         #在状态2下可以输入字符,之后按下Esc键,进入状态3
         #在状态3下输入:wq,如状态4,之后按下回车,这里的":wq"表示保存并退出编译
         ​
         ​
             

         

     

     

 

 

 

 

  1. 使用以下命令将新建立的hi.md文件加入到本地仓库中

     git add hi.md  #git add <file-name>命令用来管理hi.md文件
     ​
     git status #git status 命令用来查看当前仓库状态
     ​
     git commit -m "add hi.md" #使用git commit -m "description" 命令用来提交本次修改

     

     

  2. 此时可以使用以下命令将本地仓库推送到远程仓库

     git push -u origin master #推送本地仓库到远程仓库的master分支

     

     

    哦草,我们发现远程仓库拒绝了我们的推送请求,那么是什么原因导致的呢?

    那么下面我用直译的手法给大家翻译一下:

     

    更新被拒绝因为远程仓库包含本地没有的内容.这通常是另一个仓库推送内容到同一个远程仓库造成的.你可能需要首先合并远程仓库的改变在你再一次推送之前.

     

    这段话的意思就是有其他的开发者对同一个远程仓库进行了修改,我们在推送本地仓库内容到远程仓库之前必须先合并其他开发者对同一个远程仓库的修改(即需要先把远程仓库克隆到本地),之后才能进行本地仓库的推送

     

    那么,怎么将远程仓库克隆到本地呢?可以使用以下命令:

     git pull 

     

     

     

     

    在使用git pull 命令后,我们可以看到Git给出了一些提示

     

     

    第一行给出了远程仓库的HTTPS连接,表明了克隆仓库的地址.

    * [new branch] log ->origin /log

    * [new branch] master ->origin /master

    * [new branch] sy ->origin /sy

    这三行表示远程仓库有 log,master,sy三个分支,且将这三个分支克隆到了本地的origin/下

     

    紧接着的两句英文意思是:

    这里没有当前分支的追踪信息.

    请精确哪一个分支是你想合并的

    这里的意思是没有在远程仓库找到和本地仓库分支匹配的分支,所以提示我们精确合并本地仓库到远程仓库的某个分支.

    使用切换分支命令切换到远程仓库克隆到本地的sy分支:

     git checkout  sy #前提是sy分支已经存在

     

     

    我们可以看到提示说'sy'分支似乎不是一个git 仓库,不能够从远程仓库中读取,

     

     

    我们再看一下接下来的提示:

     

     

    这个意思是什么呢?Git 提示我们,如果我们想要仅仅将远程仓库的一个分支内容克隆到本地,那么可以使用以下命令:

     #通用命令:git pull origin <branch-name>
     ​
     #比如克隆远程仓库的sy分支
     git clone origin sy #使用这一行命令

     

    这里你可能再也忍受不了心里面的疑惑了,说了老半天,origin哪里来的???讲一下,GKD,OK!

    参考资料:Git官方文献基础远程仓库的使用

 

 

OK,让我想想写到哪里了...哦,为了解决使用命令git push -u origin master 无法将我们的本地仓库推送到远程仓库的问题,我们已经使用git pull 将远程仓库克隆到了本地,那么接下来我们再试一次命令git push -u origin master推送一下吧!

在使用之前让我们先看一下没有推送之前的远程仓库是什么样子!

 

 

上图中显示了在 https://github.com/SSBADD/study.git远程仓库中的master分支中只有git目录和README.md文件,ok那么我们推送一下

 

 

卧槽?这是咋回事?别慌,哦!!!原来是我们刚刚使用了命令git checkout sy切换工作分支到sy分支,而我们把hi.md文件加到了本地仓库的master分支

我们切换一下分支好了

 git  checkout -b text 
 #新建立并切换到text分支,此命令等于git branch text + git checkout  text
 ​
 git add hi.md 
 git commit -m "add  hi.md  ->text"
 git push -u origin text

 

 

查看远程仓库

 

 

多出来text分支了,点进去

 

 

看到文件已经被成功的添加,完事.

 

 

 

 

 

 

 

 

 

返回目录

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!