Git 系列教程(8)- 远程仓库的使用

简介: Git 系列教程(8)- 远程仓库的使用

查看远程仓库


  • 如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令,它会列出你指定的每一个远程服务器的名称
  • 如果是刚 clone 下来的自己的库,能看到 origin,这是 Git 起的默认名字


$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin


-v 选项

会显示需要读写远程仓库使用的 Git 的 URL和名称(origin)

git remote -v

origin    https://github.com/schacon/ticgit (fetch)

origin    https://github.com/schacon/ticgit (push)

 

栗子

  • 若远程仓库不止一个,该命令会将它们全部列出
  • 与他人合作,拥有多个远程仓库的仓库


$ cd grit
$ git remote -v
bakkdoor  https://github.com/bakkdoor/grit (fetch)
bakkdoor  https://github.com/bakkdoor/grit (push)
cho45     https://github.com/cho45/grit (fetch)
cho45     https://github.com/cho45/grit (push)
defunkt   https://github.com/defunkt/grit (fetch)
defunkt   https://github.com/defunkt/grit (push)
koke      git://github.com/koke/grit.git (fetch)
koke      git://github.com/koke/grit.git (push)
origin    git@github.com:mojombo/grit.git (fetch)
origin    git@github.com:mojombo/grit.git (push)


添加远程仓库


git remote add <shortname> <url>

 

添加一个新的远程 Git 仓库,同时指定一个名称

polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin    git@gitee.com:poloyy/watermarker.git (fetch)
origin    git@gitee.com:poloyy/watermarker.git (push)
polo@B-J5D1MD6R-2312 watermarker % git  remote add test  git@gitee.com:testyy/waterm
arker.git
polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin    git@gitee.com:poloyy/watermarker.git (fetch)
origin    git@gitee.com:poloyy/watermarker.git (push)
test    git@gitee.com:testyy/watermarker.git (fetch)
test    git@gitee.com:testyy/watermarker.git (push)


可以使用 test 来代替整个 URL

 

git fetch 小栗子

可以运行 git fetch pb,拉取仓库数据

$ git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
 * [new branch]      master     -> pb/master
 * [new branch]      ticgit     -> pb/ticgit


从远程仓库中抓取与拉取


从远程仓库中获得数据,可以执行

git fetch <remote>

  • 这个命令会访问远程仓库,从中拉取所有你还没有的数据
  • 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看

 

重点

git clone 命令克隆了一个仓库,Git  会自动将其添加为远程仓库并默认以 “origin” 为名称

git fetch origin

  • 这样会抓取仓库里所有新 push 的内容
  • 但它只会将新内容下载到本地,并不会自动合并或修改当前内容,需要手动将新内容合并到本地内容中(git pull)

 

git pull 初步认识

  • 默认情况下,git clone 命令会自动设置本地 master 分支跟踪 clone 下来的远程仓库的 master 分支(或其它名字的默认分支)
  • 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支

 

推送到远程仓库


语法格式

git push <remote> <branch>

 

将 master 分支的内容推送到 origin 服务器

git push origin master

 

remote 默认就是 origin,而 branch 默认是 master,所以等价写法就是

git push

 

重点

如果在你推送前,远程仓库已经有新推送的内容,那么本地需要先拉取最新的内容并合并后,才能将本地的内容重新 push 到远程仓库

# 一般的流程

git fetch

git pull

git add .

git commit -m "update"

git push

 

查看某个远程仓库


git remote show <remote>

可以查看远程仓库的更多信息

% git  remote show origin

* 远程 origin

 获取地址:git@gitee.com:poloyy/watermarker.git

 推送地址:git@gitee.com:poloyy/watermarker.git

 HEAD 分支:master

 远程分支:

   master 已跟踪

 为 'git pull' 配置的本地分支:

   master 与远程 master 合并

 为 'git push' 配置的本地引用:

   master 推送至 master (可快进)

 

能获取到的信息

  • 远程仓库的 URL和名称(origin)
  • 跟踪分支的信息
  • 正处于 master 分支
  • 执行 git pull 可以拉取远程仓库的 master 内容,并和本地 master 分支的内容进行合
  • 执行 git push 可以将本地 master 分支内容推送到远程仓库的 master 分支上

 

一个看到更多信息的栗子

$ git remote show origin
* remote origin
  URL: https://github.com/my-org/complex-project
  Fetch URL: https://github.com/my-org/complex-project
  Push  URL: https://github.com/my-org/complex-project
  HEAD branch: master
  Remote branches:
    master                           tracked
    dev-branch                       tracked
    markdown-strip                   tracked
    issue-43                         new (next fetch will store in remotes/origin)
    issue-45                         new (next fetch will store in remotes/origin)
    refs/remotes/origin/issue-11     stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    dev-branch merges with remote dev-branch
    master     merges with remote master
  Local refs configured for 'git push':
    dev-branch                     pushes to dev-branch                     (up to date)
    markdown-strip                 pushes to markdown-strip                 (up to date)
    master                         pushes to master                         (up to date)


包含多个分支的信息

 

远程仓库的重命名与移除


语法格式

git remote rename <old> <new>

 

小栗子

$ git remote rename pb paul

$ git remote

origin

paul

同时会修改你所有远程跟踪的分支名字,之前引用 pb/master 的现在会引用 paul/master

 

移除仓库的两种写法

  • git remote remove
  • git remote rm

git remote remove paul

$ git remote

origin

重点:一旦以这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除

相关文章
|
安全 开发工具 git
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
975 5
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
2132 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
开发工具 git 开发者
Git流程控制:远程仓库操作的实用指南
通过遵循这些步骤和策略,你将能够更有效地与远程仓库进行交互,确保代码变更的透明度和项目历史的干净。同时,良好的版本控制习惯可以减少潜在的冲突,并帮助保持代码库的整洁。在日常工作中应用这些实用的Git流程控制技巧将是非常有益的。
370 0
|
Shell 开发工具 git
解决git bash报错:在仓库中检测到可疑的所有权
总的来说,解决“在仓库中检测到可疑的所有权”的报错,关键在于理解和调整文件或目录的所有权。只要我们正确地设置了文件或目录的所有权,那么我们就可以避免这种问题,让Git Bash正常工作。
906 22
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
20907 11
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
1015 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
777 0
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
1047 2
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
905 1