Git(五) —— 关联本地仓库和远程仓库

push还是clone?

关联仓库有两种方式:
① 将本地项目目录转成git本地仓库,再将本地库和远程仓库关联起来,然后将本地项目代码推送到远程,这里称为push的方式;
② 将项目先上传到Git远程仓库,然后本地拉取远程库,达到关联的效果,这里称为clone的方式。

push

GitHub上创建一个完全空的Repository。方法可见Git(三) —— GitHub上新建一个仓库
之后该怎么干呢,其实github已经提示了:
在这里插入图片描述
注意,这是新建一个完全空的仓库才会有的提示,现在,动手吧。

本地新建一个git库

到本地项目目录下,使用git初始化命令:

git init

这里为了模拟,创建一个只有一个文件的文件夹作为项目文件:

在这里插入图片描述
只有一个文件:
在这里插入图片描述
进行初始化:
在这里插入图片描述
这就已经成功地将此文件夹变为了一个git本地库,但是注意,此时文件夹里的所有文件/夹都还是在Working区(回忆一下Git(一)的内容),这可以通过git branch和git status得到验证:
在这里插入图片描述
可以看到,git branch -a没有任何内容,git status告诉我们,的确是在master分支下,但是目前没有任何提交(No commits yet),但是工作区有个test.txt文件没有跟踪(untracked files),建议使用git add进行跟踪。
很清晰,那么我们进行跟踪(add)和提交(commit):
在这里插入图片描述
可以看到,commit完了之后,git branch -a才出现了分支。虽然之前git status提示我们的确是在master分支下。
回顾Git(一) —— Git架构:四个区这提示我们:git status是从Working区获取分支信息,而git branch是从本地库(Repository)而不是Working区或Stage区获取分支信息。刚刚的操作中,在commit后Repository才第一次有内容进来(之前的Repository是空的),进而获取到分支信息。

同远程空库进行关联

先到GitHub的repository下拿到clone路径:
在这里插入图片描述

https://github.com/ProLayman09/linkLocalRemote.git

接下来在本地项目目录下使用下面命令

git remote add origin #yourURL

yourURL就是刚才拿到的clone路径,实操:
在这里插入图片描述
注意

git remote add origin #yourURL

只是将本地库(Repository)和远程库关联起来,远程库默认名字就是origin,不要修改。而本地分支(此时其实就是一个master)和远程分支之间并没有建立联系,实际上,此时远程库没有任何分支
这一点可以在上述命令执行后,去远程库查看分支信息得到验证。
接下来:

git push -u origin master

注意,这个命令有三个作用:

  • 在远程库(origin)创建一个名为master的新分支
  • 将本地当前分支(master)下的repository区的内容(本例中其实就一个test.txt文件)推送到远程刚创建的master分支下
  • 使用**-u**参数使本地当前分支(master)和远程刚创建的这个分支(master)关联起来,下次本地master分支的再次push和pull时,可以不指定远程分支名称,默认就是master分支

这里再次强调一遍,所有远程仓库的默认名称就是origin,不管创建Repostitory时是什么名称,千万不要自己瞎改。
参考:添加远程库
实操结果:
在这里插入图片描述
去看看远程仓库:
在这里插入图片描述
有了test.txt文件。
成功!

clone

直接clone一个不为空的远程仓库又该怎么操作呢?
先在GitHub上创建一个不为空的Repository(带README.MD),并使用Upload功能上传一个文件(当然使用Create new file创建一个新文件也可以):
在这里插入图片描述
Upload files的同时选择在远程库创建master分支:
在这里插入图片描述
结果:
在这里插入图片描述
ps:显示的“1 branch”就是刚刚创建的master分支。

在桌面(假设我们就想放在桌面上)进行git clone:
在这里插入图片描述
(因为mac下直接在桌面打不开终端,只能迂回:finder——我的电脑(whu)——桌面——双指击——新建位于xxx):
在这里插入图片描述
看下本地桌面的文件夹:
在这里插入图片描述

在这里插入图片描述

搞定!
这里也可以看到,首次使用0<—1的方式从远程库拉取时,将自动拉取远程master分支的内容作为本地分支内容,并且命名为master。

且经实测(此处为后来实验的,就不上图了),0<—1方式同样git clone操作之后自动将两个master关联起来,在之后的操作中,可以不指明名称地push/pull

所以0<—1的方法很简单:新建远程仓库——upload files——本地在想要的路径下直接git clone。

总结

push的方式:

其实就是github新建空repository的提示:
在这里插入图片描述

  • 远程新建一个完全空的repository
  • 本地git init:将一个文件夹初始化为git本地库
  • git addgit commit将文件夹中内容(working区)推送到repository区
  • git remote add origin #yourURL
  • git push -u origin master
clone方式:
  • 选好想要放的位置
  • 打开终端
  • git clone #yourURL // 拉取
  • git push -u origin master // 关联

综上,还是直接clone的方式好

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值