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

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

相关文章
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
60 2
|
1月前
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
61 1
|
2月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
186 1
git学习三:git使用:删除仓库,删除仓库内文件
|
2月前
|
开发工具 git 索引
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
100 4
|
2月前
|
存储 开发工具 git
Git 远程仓库地址管理:添加、修改和验证
Git 远程仓库地址管理:添加、修改和验证
127 4
|
2月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
390 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
3月前
|
开发工具 git
IDEA更改远程git仓库地址
【9月更文挑战第27天】本文介绍了两种在IntelliJ IDEA中更改远程Git仓库地址的方法:一是通过图形界面,在VCS设置中直接修改;二是通过IDEA内置的命令行工具使用`git`命令进行更改。具体步骤包括从版本控制菜单进入项目设置、修改远程仓库URL,以及使用`git remote set-url`命令更新仓库地址,并验证修改结果。这些方法适用于项目迁移或更换仓库地址的情况。
774 6
|
2月前
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
|
2月前
|
前端开发 开发工具 git
搭建Registry&Harbor私有仓库、Dockerfile(八)+前端一些好学好用的代码规范-git hook+husky + commitlint
搭建Registry&Harbor私有仓库、Dockerfile(八)+前端一些好学好用的代码规范-git hook+husky + commitlint
25 0
|
3月前
|
网络安全 开发工具 git
6-23|自建仓库如何免密执行git pull
6-23|自建仓库如何免密执行git pull