通过 Git 将代码提交到 GitHub-上
1 前言
在「利用 SSH 完成 Git 与 GitHub 的绑定」一文中,我们完成了本地 Git 与远程 GitHub 的绑定,这意味着我们已经可以通过 Git 向 GitHub 提交代码啦!但是在进行演示之前,我们需要先了解两个命令,也是我们在将来需要经常用到的两个命令,分别为push
和pull
.
push
:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:
git push origin master
pull
:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:
git pull origin master
此外,在之前我们讲到过pull request
,在这里,估计大家就能更好的理解了,它表示:如果我们fork
了别人的项目(或者说代码),并对其进行了修改,想要把我们的代码合并到原始项目(或者说原始代码)中,我们就需要提交一个pull request
,让原作者把我们的代码拉到 ta 的项目中,至少对于 ta 来说,我们都是属于远程端的。
一般情况下,我们在push
操作之前都会先进行pull
操作,这样不容易造成冲突。
2 提交代码
对于向远处仓库(GitHub)提交代码,我们可以细分为两种情况:
- 第一种:本地没有 Git 仓库,这时我们就可以直接将远程仓库
clone
到本地。通过clone
命令创建的本地仓库,其本身就是一个 Git 仓库了,不用我们再进行init
初始化操作啦,而且自动关联远程仓库。我们只需要在这个仓库进行修改或者添加等操作,然后commit
即可。
接下来,以博主的 GitHub 账号中的HelloWorld
项目为例,进行演示。首先,进入 GitHub 个人主页:
如上图所示,点击HelloWorld
项目:
如上图所示,进入HelloWorld
项目后,点击Code
,复制上图所示的地址链接。然后,进入我们准备存储 Git 仓库的目录,例如下面我们本地桌面新建的GitRepo
目录, 从此目录进入 Git Bash(进入目录右键空白处 git bash here
):
接下来,输入git clone https://github.com/javaxubo/HelloWorld.git
命令,其中clone
后面所接的链接为我们刚刚复制的远程仓库的地址:
如上图所示,我们已经把远程的HelloWorld
仓库clone
到本地啦!下面,我们看看clone
到本地的仓库内容与远程仓库的内容,是否完全一致:
如上图所示,显示我们已经把远程仓库HelloWorld
的内容都clone
到本地啦!接下来我们在HelloWorld
里面新建src和web目录,在里面分别写一个java文件
接下来,从此目录(进入到HelloWorld项目目录里面)进入 Git Bash,然后输入git status
命令查看仓库状态:
如上图所示,HelloWorld
已经是一个 Git 仓库了,而且在输入git status
命令后显示有两个文件未被追踪,也就是我们刚刚复制过来的两个文件没有提交。通过「Git 初体验及其常用命令介绍」,我们已经知道了在真正提交代码之前,需要先进行git add
操作:
输入命令git add +目录文件名+/
之后 git commit -m "commit src file"
, -m
后面是本次提交备注
如上图所示,我们已经将src
目录add
并commit
到HelloWorld
仓库啦!接下来,我们将web
目录提交到仓库,然后输入git log
命令查看仓库日志:
再输入git status
命令查看仓库状态:
如上图所示,我们已经将HelloWorld
仓库里面新添加的两个目录都提交啦!下面,我们将本地仓库的内容push
到远程仓库,输入git push origin main
命令:之前git版本是git push origin master
,看准了再使用命令,不然会报错,报错信息点这里
如上图所示,在第一次向远程仓库提交代码的时候,需要输入账号及密码进行验证,验证成功后,这里我报错,点击查看,显示如下结果:
截图中带有master的是原先版本的,现在新的git界面是main, 注意下方截图中使用的命令,git push origin main
这条命令才是更新git版本中使用的.如何区别看git界面中蓝色字体是master还是main,看你自己的git界面
我这里push输入账号密码的时候一直报错,然后重复输入了几遍之后好了.
然后,刷新 GitHub 中HelloWorld
仓库:
如上图所示,我们已经将项目(仓库)中新添加的内容提交到了远程仓库。接下来,返回 GitHub 个人主页:
观察上图,我们会发现一个现象,那就是:HelloWorld
仓库的概要中新增了一个Java
语言的标记。对于这个仓库语言的标记,其来源有两个,一是在我们创建仓库时就指定语言;二是在我们提交或者新建代码后由 GitHub 自动识别该语言。
- 第二种:详见「通过 Git 将代码提交到 GitHub(下)」.