github系列之「向github提交代码」

author author     2022-10-01     134

关键词:

1.SSH

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么 GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权的,而 GitHub 上一般都是基于 SSH 授权的。

那么什么是 SSH 呢?
简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。

2.生成SSH key

Linux 与 Mac 都是默认安装了 SSH ,而 Windows 系统安装了 Git Bash 应该也是带了 SSH 的。大家可以在终端(win下在 Git Bash 里)输入 ssh 如果出现以下提示证明你本机已经安装 SSH, 否则请搜索自行安装下。

技术分享图片
 

紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:

Linux/Mac 系统 在 ~/.ssh 下,win系统在 /c/Documents and Settings/username/.ssh 下,都是隐藏文件,相信你们有办法查看的。

接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

3.GitHub 上添加 SSH key

第一步先在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys

技术分享图片
 

然后点击右上角的 New SSH key 按钮:

技术分享图片
 

需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(上述示例为了安全粘贴的公钥是无效的),Title 那栏不需要填写,点击 **Add SSH key **按钮就ok了。

这里提醒下,怎么查看 id_rsa.pub 文件的内容?

Linux/Mac 用户执行以下命令:

cd ~/.ssh
cat id_rsa.pub

Windows用户,设置显示隐藏文件,可以使用 EditPlus 或者 Sublime 打开复制就行了。

SSH key 添加成功之后,输入 **ssh -T [email protected] **进行测试,如果出现以下提示证明添加成功了。

技术分享图片
 

4.Push & Pull

在提交代码之前我们先要了解两个命令,也是上次的文章没有介绍的,因为这两个命令需要跟远程仓库配合。

Push :直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。

代码示例:

git push origin master

意思就是把本地代码推到远程 master 分支。

Pull:直译过来就是「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。

代码示例:

git pull origin master

意思就是把远程最新的代码更新到本地。一般我们在 push 之前都会先 pull ,这样不容易冲突。

5.提交代码

添加 SSH key 成功之后,我们就有权限向 GitHub 上我们自己的项目提交代码了,而提交代码有两种方法:

Clone自己的项目

我们以我在 GitHub 上创建的 test 项目为例,执行如下命令:

git clone [email protected]:stormzhang/test.git

这样就把 test 项目 clone 到了本地,你可以把 clone 命令理解为高级点的复制,这个时候该项目本身就已经是一个git 仓库了,不需要执行 git init 进行初始化,而且甚至都已经关联好了远程仓库,我们只需要在这个 test 目录下任意修改或者添加文件,然后进行 commit ,之后就可以执行:

git push origin master

进行代码提交,这种是最简单方便的一种方式。

至于怎么获取项目的仓库地址呢?如下图:

技术分享图片
 

关联本地已有项目

如果我们本地已经有一个完整的 git 仓库,并且已经进行了很多次 commit ,这个时候第一种方法就不适合了。

假设我们本地有个 test2 的项目,我们需要的是在 GitHub 上建一个 test 的项目,然后把本地 test2 上的所有代码 commit 记录提交到 GitHub 上的 test 项目。

第一步就是在 GitHub 上建一个 test 项目,这个想必大家都会了,就不用多讲了。

第二步把本地 test2 项目与 GitHub 上的 test 项目进行关联,切换到 test2 目录,执行如下命令:

git remote add origin [email protected]:stormzhang/test.git

什么意思呢?就是添加一个远程仓库,他的地址是 [email protected]:stormzhang/test.git ,而 origin 是给这个项目的远程仓库起的名字,是的,名字你可以随便取,只不过大家公认的只有一个远程仓库时名字就是 origin ,为什么要给远程仓库取名字?因为我们可能一个项目有多个远程仓库?比如 GitHub 一个,比如公司一个,这样的话提交到不同的远程仓库就需要指定不同的仓库名字了。

查看我们当前项目有哪些远程仓库可以执行如下命令:

git remote -v

接下来,我们本地的仓库就可以向远程仓库进行代码提交了:

git push origin master

就是默认向 GitHub 上的 test 目录提交了代码,而这个代码是在 master 分支。当然你可以提交到指定的分支,这个之后的文章再详细讲解。

对了,友情提醒,在提交代码之前先要设置下自己的用户名与邮箱,这些信息会出现在所有的 commit 记录里,执行以下代码就可以设置:

git config —global user.name "stormzhang"
git config —global user.email "[email protected]"






git学习

从0开始学习GitHub系列之「初识GitHub」从0开始学习GitHub系列之「加入GitHub」从0开始学习GitHub系列之「Git速成」从0开始学习GitHub系列之「向GitHub提交代码」从0开始学习GitHub系列之「Git进阶」从0开始学习GitHub系列之「团队合作利器... 查看详情

github系列之「git进阶」

1.用户名和邮箱我们知道我们进行的每一次commit都会产生一条log,这条log标记了提交人的姓名与邮箱,以便其他人方便的查看与联系提交人,所以我们在进行提交代码的第一步就是要设置自己的用户名与邮箱。执行以下代码:gitc... 查看详情

解决`向github提交代码是老要输入用户名密码`

我曾经切换过一次github账号,似乎还更改过一次github账号的密码,然后呢?然后就是每次向github提交代码时都要输入用户名密码(猜测是由于上述原因导致),每次都是啊,这也忒麻烦了,于是就想办法解决这个问题,经过一番查找,终于找... 查看详情

转载从0开始学习github系列之「git进阶」

转载自http://stormzhang.com关于Git相信大家看了之前一系列的文章已经初步会使用了,但是关于Git还有很多知识与技巧是你不知道的,今天就来给大家介绍下一些Git进阶的知识。1.用户名和邮箱我们知道我们进行的每一次commit都会产... 查看详情

git的基本了解与使用向github提交代码

#Git的基本了解与使用、向github提交代码-git:是一个版本控制系统。-github:一个代码托管提供商、开源网站、是一个面向开源及私有软件项目的托管平台,因为支持Git作为唯一的版本库格式进行托管,故名为github。 -刚开始我对两... 查看详情

windows7向github提交代码

首先要有一个github账号。我自己申请了github账号,然后创建一个代码仓库。这个是我创建好的代码仓库:里面是空的没有代码,我今天从我本地写好的代码,传到github上面去。首先需要告诉git你是谁?然后初始化项目然后设置远... 查看详情

通过git向github提交代码(windows系统)(代码片段)

1.新建项目在GitHub选择并创建一个项目。首先,登录GitHub,单击页面右上角加号“+”,选择“Newrepository”选项。填写项目名称及描述,默认项目为“Public”,如果想创建“Private”项目,GitHub需要收费。最后单击“Createrepository”... 查看详情

使用gitbash向github远程仓库提交代码(代码片段)

1、登录github,创建仓库。2、切换到要提交的文件目录下。3、打开gitbash   3.1、初始化仓库gitinit  3.2、将本地仓库与远程仓库关联gitremoteaddoriginhttps://github.com/lis-ylfy/config-test.git  3.3、测试是否连接成功gitremote  输出... 查看详情

错误记录androidstudio向github提交代码报错(pushfailed:failedwitherror:couldnotread|使用命令行提交代码)(代码(代码片段)

...错信息二、解决方案一、报错信息在AndroidStudio中首次向GitHub提交代码,报错:Pushfailed:Failedwitherror:Couldnotreadfromremoterepository.二、解决方案如果在AndroidStudio中使用可视化界面提交失败;考虑使用Git命令提交;进入Terminal面板,进入工程根... 查看详情

错误记录androidstudio向github提交代码报错(pushfailed:failedwitherror:couldnotread|使用命令行提交代码)(代码(代码片段)

...错信息二、解决方案一、报错信息在AndroidStudio中首次向GitHub提交代码,报错:Pushfailed:Failedwitherror:Couldnotreadfromremoterepository.二、解决方案如果在AndroidStudio中使用可视化界面提交失败;考虑使用Git命令提交;进入Terminal面板,进入工程根... 查看详情

实战:向github提交代码时触发jenkins自动构建

 参考https://blog.csdn.net/boling_cavalry/article/details/78943061https://www.jianshu.com/p/967895761953https://blog.csdn.net/qq_23603437/article/details/82885375https://www.jianshu.com/p/eeb15a408 查看详情

错误记录androidstudio向github提交代码报错(pushfailed:failedwitherror:couldnotreadfromremote)(代码(代码片段)

...错信息二、解决方案一、报错信息在AndroidStudio中首次向GitHub提交代码,报错:Pushfailed:Failedwitherror:Couldnotreadfromremoterepository.二、解决方案将设置中的Git的SSHexecutable设置为Native;打开Git安装目录下的bin/bash,在命令行中输入ssh-keygen-trsa-... 查看详情

错误记录androidstudio向github提交代码报错(pushfailed:failedwitherror:couldnotreadfromremote)(代码(代码片段)

...错信息二、解决方案一、报错信息在AndroidStudio中首次向GitHub提交代码,报错:Pushfailed:Failedwitherror:Couldnotreadfromremoterepository.二、解决方案将设置中的Git的SSHexecutable设置为Native;打开Git安装目录下的bin/bash,在命令行中输入ssh-keygen-trsa-... 查看详情

github之协同开发(代码片段)

一协同开发1、引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢?要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来。所以,为每一个人... 查看详情

git学习系列之如何正确且高效地将本地项目上传到github(图文详解)(代码片段)

...  不多说,直接上干货!    首先你需要一个Github账号,所以还没有的话先去注册吧!https://github.com/   见     Git的安装  见Git学习系列之Windows上安装Git详细步骤(图文详解)    ... 查看详情

git系列三之在线github使用方法

代码托管地址:https://github.com一、认证方式1、https方式:不需要认证[[email protected]demo]#gitclonehttps://github.com/nulige/Bastion-of-machine.gitInitializedemptyGitrepositoryin/root/demo/Bastion-of-machine/.git/war 查看详情

github系列之「git速成」

1.什么是Git?Git是Linux发明者Linus开发的一款新时代的版本控制系统,那什么是版本控制系统呢?怎么理解?网上一大堆详细的介绍,但是大多枯燥乏味,对于新手也很难理解,这里我只举几个例子来帮助你们理解。熟悉编程的知... 查看详情

github系列之「怎样使用github?」

...ub?跟朋友在交流的时候听到求职的时候发现有些公司要附Github帐号,一个优秀的GitHub账号当然能让你增色不少。自己之前听说过,但没有花时间研究,最后花了时间看了CitHub的文档,还有一些程序员写的的blog,就写下来了。2.Git... 查看详情