git中最常用的操作-push到远程仓库


创建远程仓库

Git 是一个分散型版本管理系统,但我们之前所做的实验都是在本地仓库中进行实验的。接下来,我们将开始接触远在网络另一头的远程仓库。那么,什么叫远程仓库呢?远程仓库就是指与本地仓库相对独立的仓库。我们可以把数据传送到远端仓库中。以免需要时,可以在网络中查看并clone下来。(关于clone的内容,我们将在下一篇笔记中进行讨论)


那么接下来,我们现在GitHub上创建一个仓库,并将该仓库设置成为本地仓库的远程仓库。


首先,登录到自己的github当中,并点击创建远程仓库的按钮。



创建之后,我们需要设置远程仓库的仓库名。这里的仓库名,请尽量跟本地仓库的名称保持一致。(便于查看和管理)



请注意在创建仓库时,请不要勾选 Initialize this repository with a README 选项。因为一旦勾选该选项,这里的远程仓库就会自动生成README文件,从创建之初便与本地仓库失去了整合性。虽然到时也可以强制覆盖,但为了防止这一情况发生还是建议不要勾选该选项,直接点击创建仓库(Create repository)即可。(这个不是硬性要求,根据实际情况来进行决定)


在本地仓库中添加远程仓库 git remote add

在上述内容中,我们创建了在Github上的远程仓库。那么该远程仓库的路径为:

  • git@github.com:个人github的用户名/远程仓库名.git --中间无空格

那么,我们接下来就用 git remote add 命令将它设置成本地仓库的远程仓库。格式以及命令如下:

$ git remote add 远程仓库的标识符(通常为origin) 远程仓库的路径

$ git remote add origin git@github.com:gao79135/gxz.git

执行完上述的命令之后,显示的结果如下:



按照上述的格式执行 git remote add 命令之后,git 会自动将 git@github.com:gao79135/gxz.git 远程仓库的名称设置为origin(标识符)(标识符的名称不仅限与origin,这个是随意设置的)


将本地仓库中当前分支(例:master)的内容,推送到远程仓库的master分支中

如果想让当前分支(例:master)的内容,推送到远程仓库的master分支中。需要用到 git push 命令。现在,我们就来立即实验一下(我们需要先进入到master分支中):

$ git push -u origin master        -- origin 代表远程仓库的标识符    master代表推送到远程参数的master分支当中。

执行完该命令的结果如下:



按照如上的方式去执行git push命令,那么当前分支的内容就会被推送到远程仓库origin中的master分支。 -u 参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的upstream(上游)。添加了这个参数以后,将来在当前分支中使用git pull 命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从origin的master分支获取内容,省去了额外添加参数的麻烦。并且,我们可还记得在先前的内容中,我们为我们的github添加了一个密钥。那么,在这时密钥的作用就显现出来了:当所有人对你的github中的远程仓库进行操作时,都需要输入私钥。如果私钥正确,就会继续操作。如果输入的私钥不正确,则会终止你当前的操作。直到将私钥输入正确为止。这也是一种保护个人远程仓库被随意篡改的安全措施。


将本地仓库master分支的内容推送过去之后,我们可以很容易在网页内看到远程仓库中所推送过来的master分支的内容。并且,这个分支的内容跟本地仓库的master分支内容完全相同。

推送至远程仓库中的其它分支

除了 master 分支以外,远程仓库也可以创建其他分支。举个例子,我们可以在本地仓库中创建feature-D分支,并将它以同名的形式push至远程仓库。

$ git checkout -b feature-D

执行完上述的命令后,我们在本地仓库中就创建了一个feature-D分支,现在将它push给远程仓库并保持分支名称不变。(以达到在远程仓库中创建分支的效果,因此在远程仓库中创建分支是由本地仓库中所push的分支决定的)(如果你设置了密钥,那么下面的命令执行后也将会让你输入私钥)

$ git push -u origin feature-D

执行结果如下:



现在,我们可以进入我们自己的github中,之后就能在我们自己的远程仓库中看到创建的feature-D分支了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM