美文网首页Angular收藏杂项
git快速入门(MAC系统,github,ssh key)

git快速入门(MAC系统,github,ssh key)

作者: RasonWu | 来源:发表于2016-06-17 15:52 被阅读8336次

    如果使用过svn的话,git大致可以认为是多了本地库的svn。git先本地提交commit到本地库,然后再push到远程服务器的库。
    git是分布式的代码管理工具,基于SSH协议。ssh的作用就是为了不用每次都输入账号和密码。
    生成的ssh密钥,分为公钥和私钥。公钥就是所要添加的ssh key(.pub文件)。公钥可以看成是一个锁头,私钥就是对应的钥匙。生成的ssh密钥是可以用到不同的地方的,比例同时添加到github,coding的平台。
    没有github账号的,先注册一下https://github.com/
    github的ssh配置如下:
    一 、在终端中设置git的user name和email:

    git config --global user.name "wurs"
    git config --global user.email "522970682@qq.com"
    

    下面指令可以进入当前用户目录,~在终端中是指当前用户的目录,即/users/你的用户名,这样一个目录。(用户的文件基本上都是用该目录下,包括下载、桌面等目录。)

    cd ~
    

    执行下面指令查看当前目录

    pwd
    
    Paste_Image.png

    执行如下命令,能查看是否配置成功:

    cat .gitconfig
    
    Paste_Image.png

    sourceTree对应的位置:(知道一下就行,后面再学习sourceTree)


    Paste_Image.png

    二、生成SSH密钥过程:
    1.终端中执行如下命令,进入.ssh文件夹,查看是否已经有了ssh密钥:

    cd ~/.ssh
    

    如果没有密钥则不会有此文件夹,有则备份删除

    2.生成密钥:

    ssh-keygen -t rsa
    
    Enter file in which to save the key (/Users/rason/.ssh/id_rsa):
    

    这里是输入文件名,直接回车的话,则使用默认名id_rsa。

    Enter passphrase (empty for no passphrase): 
    

    这里是输入密钥密码,直接回车的话,密码为空。

    Enter same passphrase again: 
    

    这里是再次输入密钥密码,直接回车的话,密码为空。该密码就是使用该密钥所需要输入的密码。
    以上可以直接3个回车,则密码为空,生成文件名为id_rsa的两个文件。
    Your identification has been saved in /Users/rason/.ssh/id_rsa.
    Your public key has been saved in /Users/rason/.ssh/id_rsa.pub.
    The key fingerprint is:
    ………………
    看到如上提示,说明已经生成成功。

    ssh-keygen -t rsa生成的文件会在如下目录中:

    cd ~/.ssh
    

    进入.ssh目录后,执行如下命令,可以在finder中查看生成的文件。

    open .
    

    3.添加该密钥:ssh-add -K 文件名

    ssh-add -K id_rsa
    

    需要之前输入的密码,文件名为之前输入的文件名,若之前是直接输入回车,则默认文件名为id_rsa。(若不是当前目录,文件名记得要带上路径)
    执行如下命令,可以查看当前文件

    ls
    
    Paste_Image.png

    4.查看公钥,并复制红色部分

    cat id_rsa.pub
    
    Paste_Image.png

    5.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥,就是刚才红色部分。
    打开https://github.com/ ,登录之后,点击右上角的头像里面的setting,然后左边栏中点击SSH and GPG keys,然后是New SSH key,添加进去即可。

    Paste_Image.png

    6.测试是否连接成功:ssh git@github.com
    PTY allocation request failed on channel 0
    Hi air1120! You've successfully authenticated, but GitHub does not provide shell access.
    Connection to github.com closed.
    有以上信息,说明已经成功。

    三、github的创建项目的演示(视频) <---看完左边这个视频
    https://github.com/ 登录之后,创建githubCreate
    把项目拉下来,当前终端的目录在哪里,项目就会被拉取到哪个目录下。

    git clone git@github.com:air1120/githubCreate.git
    

    已经成功拉下来了。

    四、刚才已经通过git clone拉取了源码,终端继续输入

    cd githubCreate
    open .
    
    Paste_Image.png

    能看到已经拉取成功

    Paste_Image.png

    接下来是创建xcode项目,并添加到该git项目中,查看在线视频
    1.已经成功把远程的库,拉取到本地。
    2.现在需要创建一个新的项目,并push到github上。
    3.需要知道的一些基本的操作

    • 查看仓库的当前状态,查看当前文件的修改情况。(这步一般要检查一下,防止手误添加多余的文件)
    git status
    
    • 把某个文件保存到暂存区域。
    git add 文件名
    
    • 把所有文件保存到暂存区域
    git add -A   
    
    • 提交暂存区域的修改到本地库
    git commit -m "修改内容"   
    
    • 查看commit的操作日志,看下是否已经成功
    git log   
    
    • 恢复某个文件的修改,若存在暂存区域的话,就恢复到暂存区域的状态,若不存在暂存区域的话,就恢复到本地库的状态。
    git checkout 文件名
    
    • 下面的.是表示所有文件
    git checkout .
    
    • 若存在暂存区域,就是工作区与暂存区域的具体差异,若不存在暂存区域,则是工作区与本地库的具体差异。
    git diff
    

    sourceTree的基本操作视频

    有时间的话,看完下面的教程就都会了,通俗易懂,不过还是要花不少时间:

    相关文章

      网友评论

      • 脑仁不见啦:我没有安装git但是git能用,是为什么啊。能够git clone 而且idea中也能push 和pull 代码。来个大佬解释下是不是不用安装了。老感觉和windows不一样啊
      • 纳木错_grace:非常感谢。初入iOS,你的文章帮助很大。谢谢!
      • 纳木错_grace:你好,是每一个仓库都要生成一个ssh吗?如果再次生成的ssh覆盖掉原来的怎么办?谢谢了。
        纳木错_grace:谢谢!!
        RasonWu:@纳木错_grace
        Host code.suanya.cn
        User git
        HostName code.suanya.cn
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/zhushou/id_rsa

        Host git.coding.net
        User git
        HostName git.coding.net
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github/id_rsa
        RasonWu:@纳木错_grace 你可以一个公钥ssh对应多个仓库的。我就是这么干的。你也可以用多个ssh。你生成ssh的时候把文件路径加上就不会覆盖原来的了。多个ssh的管理需要设置.ssh里面的config文件。我下面一条发一下里面的格式。
      • Wy_chris:就你这里的靠谱,其他的按照步骤来 老是不行!

      本文标题:git快速入门(MAC系统,github,ssh key)

      本文链接:https://www.haomeiwen.com/subject/chsvdttx.html