继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

操作远程仓库

为爱心太软
关注TA
已关注
手记 170
粉丝 1.4万
获赞 860

远程仓库

远程仓库是指托管在网络上的版本库。
通常情况下,在执行 git clone 一个仓库的时候,就会自动将 URL 添加为远程仓库地址并命名为 “origin”。

查看远程仓库
git remote

运行该指令, 会列出已经添加的远程仓库的名字,至少能看到 origin。
指定选项 -v,会显示远程仓库的名字与其 URL。

$ git remote -v
origin  https://github.com/AttitudeToLife/test.git (fetch) # 更新到本地仓库的URL
origin  https://github.com/AttitudeToLife/test.git (push) # 推送到远程仓库的URL

如果想查看某一个远程仓库的更多信息,可以使用下面的指令:

git remote show [remote-name]

例子:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/AttitudeToLife/test.git
  Push  URL: https://github.com/AttitudeToLife/test.git
  HEAD branch: main # 主分支
  Remote branches: # 远程仓库的分支列表
    main                      tracked # 远程仓库的分支列表
    refs/remotes/origin/test3 stale (use 'git remote prune' to remove)
    test1                     tracked
    test2                     new (next fetch will store in remotes/origin)
  Local branches configured for 'git pull':
    main  merges with remote main
    test1 merges with remote test1
    test3 merges with remote test3
  Local refs configured for 'git push':
    main  pushes to main  (up to date)
    test1 pushes to test1 (up to date)

1、在远程仓库的分支列表中,tracked 状态表示分支已被跟踪,可以正常将本地分支与远程分支进行同步。
2、stale (use ‘git remote prune’ to remove) 状态表示远程仓库的 test3 已被删除,但是本地仓库列表中仍然有这个分支的引用。
建议使用 git remote prune [remote-name] 来删除已经不存在的远程分支引用( 只是删除远程引用 origin/test3,而不是本地分支 test3 )。

$ git remote prune origin
Pruning origin
URL: https://github.com/AttitudeToLife/test.git
 * [pruned] origin/test3 # 成功删除了 origin/test3 这个远程分支的引用

3、new (next fetch will store in remotes/origin) 状态表示远程仓库有新的分支,但是新分支还没有添加到本地的远程分支列表中。
建议使用 git fetch 将新的远程分支添加到本地的远程引用列表中( 只是添加远程引用 origin/test2,而不是在本地新建分支 test2 )。

$ git fetch                           
From https://github.com/AttitudeToLife/test
 * [new branch]      test2      -> origin/test2 # 新增 origin/test2 分支的引用

如果不清楚 git remote prune origingit fetch 执行的效果,可以参考下面 vsCode 的截图:
图片描述

4、Local branches configured for ‘git pull’ 表示本地分支与远程分支的合并关系,即在执行 git pull 时,本地分支 main、test1 和 test3 分别与远程的 main、test1 和 test3 分支进行合并。
5、Local refs configured for ‘git push’ 表示本地分支与远程分支的推送关系,即在执行 git push 时,本地分支 main、test1 和 test3 分别推送给远程的 main、test1 和 test3 分支。

拉取远程仓库
git fetch
git pull

以上两个指令,都可以从远程仓库拉取数据到本地仓库,但是两者略有不同:
git fetch 指令从远程仓库拉取数据时,不会修改工作目录中的内容,需要我们自己去合并( git merge )。
git pull 指令可以认为是 git fetchgit merge 的组合体,拉取数据后马上将其合并进当前所在的分支。

推送到远程仓库
git push

该指令可以将本地分支备份到远程分支。
如果在这个分支上,已经有其他人在你之前推送过数据,那么,必须先将他们的内容拉取下来并将其合并进你的工作区后才能推送。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP