如何向git账号上提交代码

 我来答
福喜900
推荐于2018-03-13 · TA获得超过6.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:1亿
展开全部

一直使用SSH连接服务器,但是对它的原理却不太了解。这次设置Octopress的时候,需要使用SSH 方式连接Github, 正好对SSH的工作方式做了下了解。(好像Github推荐使用HTTPS的方式访问repo, 以前Github受到过SSH密匙攻击,之后升级了SSH key的安全措施,https方式视乎更方便安全,不过Octopress的设置文档中,我并没有找到怎么使用HTTPS连接Github)
简单来说,SSH提供了两种级别的安全验证:

第一种级别是基于密码的安全验证,知道账号和密码,就可以登陆到远程主机。Team的开发工作中,就是使用这种方式登陆编译服务器,或者开发机器。因为是在内网中,这种级别的安全验证已经足够了。

第二种级别是基于Public-key cryptography (公开密匙加密)机制的安全验证,原理如下图所示:

其优点在于无需共享的通用密钥,解密的私钥不发往任何用户。即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。


产生SSH key

根据Github提供的help文档,具体过程如下


$ cd ~/.ssh

# Checks to see if there is a directory named ".ssh" in your user directory


使用ssh-keygen产生新的key


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

# Creates a new ssh key using the provided email

Generating public/private rsa key pair.

Enter file in which to save the key (/home/you/.ssh/id_rsa):


使用默认的文件名直接enter, 按提示输入密码(如果不提供密码,SSH将无密码连接,如果private key泄露可能会有安全问题)


Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]


密匙产生成功


Your identification has been saved in /home/you/.ssh/id_rsa.

Your public key has been saved in /home/you/.ssh/id_rsa.pub.

The key fingerprint is:

01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

上传public key到Github账户

登录github

点击右上方的Accounting settings图标

选择 SSH key

点击 Add SSH key

在出现的界面中填写SSH key的名称,填一个你自己喜欢的名称即可,然后将上面拷贝的~/.ssh/id_rsa.pub文件内容粘帖到key一栏,在点击“add key”按钮就可以了。

添加过程github会提示你输入一次你的github密码


设置SSH使用HTTPS的403端口

在局域网中SSH的22端口可能会被防火墙屏蔽,可以设置SSH使用HTTPS的403端口。


测试HTTPS端口是否可用

$ ssh -T -p 443 git@ssh.github.com

Hi username! You've successfully authenticated, but GitHub does not

provide shell access.


编辑SSH配置文件 ~/.ssh/config 如下:

Host github.com

  Hostname ssh.github.com

  Port 443


测试是否配置成功


$ ssh -T git@github.com

Hi username! You've successfully authenticated, but GitHub does not

provide shell access.

多个Github账号的SSH key切换

如果在一台机器上要登陆多个Github账户,需要一些配置,虽然现在并没有用到,但是先记下来以备不时之需,过程参看这里。


2,【GitHub】解决每次push代码到github都需要输入用户名和密码的方法


在github上,建立一个项目test,去主页查看可以看到


如果使用HTTPS:


Create a new repository on the command line

touch README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin https://github.com/guochy2012/test.git

git push -u origin master

Push an existing repository from the command line

git remote add origin https://github.com/guochy2012/test.git

git push -u origin master


如果采用SSH:


Create a new repository on the command line

touch README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin git@github.com:guochy2012/test.git

git push -u origin master

Push an existing repository from the command line

git remote add origin git@github.com:guochy2012/test.git

git push -u origin master


使用HTTPS需要每次输入密码,SSH则不用,但SSH需要配置密钥 。


关于怎么产生密钥可以参见《Generating SSH Keys》一文


3,github地址 从https改成ssh


打开命令行工具,运行 git remote set-url origin 例如:

 

$ git remote set-url origin git@github.com:user/repo.git

 

然后再次 commit,如果出现类似:


Permission denied (publickey).

 

字样,那么说明你的 SSH key 没有设置或已经失效(譬如升级到 Mountain Lion 系统后),请重新参照上文的官方文档进行设置即可。


4,执行pull时报错


wangkongming@AY140527171808170503Z:~/github/collect$ git pull

Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: UNPROTECTED PRIVATE KEY FILE! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Permissions 0644 for '/home/wangkongming/.ssh/id_rsa' are too open.

It is recommended that your private key files are NOT accessible by others.

This private key will be ignored.

bad permissions: ignore key: /home/wangkongming/.ssh/id_rsa

Permission denied (publickey).

fatal: The remote end hung up unexpectedly

就烦条0o
2018-08-04 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
大致分为以下几个步骤

安装git环境,工具使用msysgit
github上的账号

首先在github上点击头像旁边的加号 add new ,选择new Repository,自己创建一个名字,假设取名为 hevily

线上的github结束了.

开始设置本地的 mysysgit与线上关联,首先是 ssh本的pub文件与线上的ssh key关联

//注意这里的-C中的C是大写
ssh-keygen -t rsa -C "你的gtihub的邮箱"

 设置之后,进入命令提示的目录,默认为 c:\Users\Administrator\.ssh
这里只需要.pub的文件另外一个是私钥,自己用,id_rsa.pub这个文件是公钥,用记事本打开,注意下编码格式,如果是乱码说明你的打开工具有问
题,打开之后ctrl+A ctrl+C复制全部内容

现状进入线上的github,点击设置找到SSH keys,点击 add ssh key ,title自己随便写,把刚才复制的内容粘贴到 key的文本框里面,保存! 大功告成! 

现状打开mysysgit这个工具,需要首先全局配置下你的邮箱和名字,命令如下

git config --global user.email "github邮箱"
git config --global user.name "github名字"

 这个配置好后,你的哦你工作基本已经完成一大部分了

开始和远程也就是github上的库 hevily ,进行关联

=== 广告 git github===

首先在自己本地的一个文件夹,这里咱们在 d:\git-test下进行操作

cd /d/git-test/

首先需要克隆线上的库

//后面的git@github.com:hevily/hevily 就是刚才你创建项目的git地址
//如果找不到,就去线上点击刚才 你创建的hevily这个项目,右边,看右边
//SH clone URL
//You can clone with HTTPS, SSH, or Subversion.
//这个地方,点击ssh 然后复制框里面的地址,就可以了

git clone git@github.com:hevily/hevily

 进入hevily克隆好的目录,开始肆无忌惮的创建自己的想法吧.

开始提交吧

//首先先链接下远程的git库

git remote add origin git@github.com:hevily/hevily

//开始把本地的文件全部添加下
git add .

//提交

git commit -m "这里是我写的提交注释"

//提交到远程
git push -u origin master
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好程序员
2018-07-31 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
安装git环境,工具使用msysgit
github上的账号

首先在github上点击头像旁边的加号 add new ,选择new Repository,自己创建一个名字,假设取名为 hevily

线上的github结束了.

开始设置本地的 mysysgit与线上关联,首先是 ssh本的pub文件与线上的ssh key关联

//注意这里的-C中的C是大写
ssh-keygen -t rsa -C "你的gtihub的邮箱"

 设置之后,进入命令提示的目录,默认为 c:\Users\Administrator\.ssh
这里只需要.pub的文件另外一个是私钥,自己用,id_rsa.pub这个文件是公钥,用记事本打开,注意下编码格式,如果是乱码说明你的打开工具有问
题,打开之后ctrl+A ctrl+C复制全部内容

现状进入线上的github,点击设置找到SSH keys,点击 add ssh key ,title自己随便写,把刚才复制的内容粘贴到 key的文本框里面,保存! 大功告成! 

现状打开mysysgit这个工具,需要首先全局配置下你的邮箱和名字,命令如下

git config --global user.email "github邮箱"
git config --global user.name "github名字"

 这个配置好后,你的哦你工作基本已经完成一大部分了

开始和远程也就是github上的库 hevily ,进行关联

=== 广告 git github===

首先在自己本地的一个文件夹,这里咱们在 d:\git-test下进行操作

cd /d/git-test/

首先需要克隆线上的库

//后面的git@github.com:hevily/hevily 就是刚才你创建项目的git地址
//如果找不到,就去线上点击刚才 你创建的hevily这个项目,右边,看右边
//SH clone URL
//You can clone with HTTPS, SSH, or Subversion.
//这个地方,点击ssh 然后复制框里面的地址,就可以了

git clone git@github.com:hevily/hevily

 进入hevily克隆好的目录,开始肆无忌惮的创建自己的想法吧.

开始提交吧

//首先先链接下远程的git库

git remote add origin git@github.com:hevily/hevily

//开始把本地的文件全部添加下
git add .

//提交

git commit -m "这里是我写的提交注释"

//提交到远程
git push -u origin master
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑喘是病得抽
2018-08-03 · TA获得超过925个赞
知道大有可为答主
回答量:2140
采纳率:98%
帮助的人:2242万
展开全部
首先添加 git add -A
添加注释 git commit -m "comment text"
提交内容 git push
查看当前状态 git status
基本内容你可查看 git 简明指南,学会这些基本上可以使用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式