爱美女性网
您的位置: 爱美女性网首页 >> 时尚

Git使用SSH方式上传本地项目到GitHub仓库(win10)

本文目录结构:

  • 本文适用场景
  • 在GitHub创建仓库
  • 设置ssh密匙
  • 同步代码


1.本文适用场景:

  • Windows 10
  • 本地已经存在开发中项目 git-test,需要上传到远程仓库
  • git 已经安装好
  • 远程仓库这里使用GitHub


2.在GitHub创建仓库

个人头像下拉菜单中 打开 Your repositories,可以查看自己的仓库列表。

  • 两种创建新仓库的方法:

①:在仓库列表页面点击New按钮可用创建新仓库。

②:在个人头像左边点击 New repository也可以创建新仓库


  • 创建仓库时的填写内容
  • 创建完成
  • clone地址:

  • 3.生成SSH Key(生成 公钥和私钥)

    ①:打开Git Bash,在这里使用命令 ssh-keygen -t rsa -C "邮箱地址"

    命令详解如下:

    ssh-keygen -t rsa -C “any comment can be here”

    -t = 密钥的类型(The type of the key to generate) ,这里参数值是 rsa

    -C = 用于识别这个密钥的注释 ,可以是任何内容(comment to identify the key)

    虽然可以填写任何内容,但为了方便记忆,一般都填写邮箱。

    ②:选择密匙文件保存位置

    会生成两个文件 id_rsa和id_rsa.pub

    默认路径是:/c/Users/iskyl/.ssh/

    其中iskyl是我的windows10 用户名。

    如果默认就直接回车。

    ③:输入密匙密码,直接回车代表不设置。

    如果电脑只可能你自己使用,那不设置操作更方便,不然每次提交都输入秘钥的密码,很烦人。


    ④:生成秘钥的地址

    ⑤:查看公钥的内容,这个需要复制,设置到github中。

    4、将公钥设置到GitHub中

    ①:点击 头像的下拉菜单的Settings,进入设置页面

    ②:点击 New SSH Key,新增公钥

    ③:设置公钥,名字随便,当有多个时,能知道代表含义就可以。key中内容就是生成的id_rsa.pub内容完全复制过来的。

    保存之后的列表显示:

    ④:验证公钥连接。

    ssh -T git@github.com

    连接成功,会生成known_hosts文件,并且将github.com连接的ip,通信公钥等内容加入到文件中。作为信任列表。

    5. 上传本地代码。

    以下步骤中有两部分可能你不会遇到,所有有些内容是因为环境,可以跳过,关键是知道原因,选择执行:

    • git config --local设置email和name,如果之前电脑中使用设置过 git,或者设置过git config --global user.email或者name,就不会遇到步骤④的提示,也可以跳过设置。
    • 如果远程github上面创建的仓库文件和本地文件不同,也就是没有冲突,也就可以顺利的git pull之后,顺利git push,完成同步。也不会遇到文件冲突,解决冲突。
    • 在设置好ssh key,能通信后,其实以下各个步骤就是为了完成代码准备好后提交:先建立本地仓库(git init);添加文件,提交到本地仓库(git add 和git commit);提交到远程仓库(git remote add、git pull、git push)。

    ①:在需要上传的项目文件夹上面,右键打开Git Bash Here

    ②:建立项目git仓库 git init . (注意最后的点 .)执行后 项目目录下回新增 .git文件夹

    ③:添加文件到暂存区 git add -A . (同样注意最后的点 .)含义是当前文件夹的所有变化都提交到暂存区。

    因为我的项目中有 .gitignore文件,设置了不需要提价的一些文件,所以会有 warning。

    (注意:因为github上创建仓库时我选择了创建 .gitignore文件,所以会导致后续更新GitHub代码步骤的文件冲突,并且自动merge会失败,稍后说明解决办法。)

    ④:插播:设置提交时的 email和name,这个是显示的提交人,所有人可见,非账号(当然也可以设置为github账号邮箱)。

    提示的是设置 global全局,但是我打算其他项目使用其他账号,比如公司内部的仓库提交记录显示工号姓名。所以我使用的是 git config --local (--local参数表明设置只对本目录项目生效)

    查看设置结果 git config --list

    ⑤:提交到本地仓库

    ⑥:设置 remote :origin是名称,后面是git远程仓库地址,当前是ssh的.git地址

    ⑦:拉取远程仓库的代码到本地(先拉取代码、编辑冲突,然后才提交全部代码)

    ⑧:异常及解决方式:

    • 异常1:fatal: refusing to merge unrelated histories,本地和远程仓库历史不一致。这个是因为上一步 git pull,不是使用的git clone,但是这里不能使用 git clone,解决方式是 git pull 后面加参数 --allow-unrelated-histories,完整命令:git pull origin master --allow-unrelated-histories
    • 异常2:文件冲突

    ⑨:提交到远程仓库

    ⑩:查看GitHub提交记录


    OVER!

    推荐阅读:寻找我的iphone在哪里

    关于我们 联系我们 老版地图 网站地图 版权声明