git -- 对远程仓库的操作 -- 查看,添加(与clone对比),抓取和拉取,推送(注意点,抓取更新+合并的三种方法,解决冲突,对比),移除

目录

对远程仓库的操作

介绍

查看 (git remote)

介绍

查看详细信息

[添加(git remote add)](#添加(git remote add))

介绍

[与 git clone对比](#与 git clone对比)

从远程仓库中抓取与拉取

[抓取(git fetch)](#抓取(git fetch))

[拉取(git pull)](#拉取(git pull))

[推送(git push)](#推送(git push))

介绍

注意

抓取更新+合并的方法

[git fetch + git merge](#git fetch + git merge)

解决冲突

[git fetch + git rebase](#git fetch + git rebase)

解决冲突

[git pull](#git pull)

对比

[移除(git remote remove/rm)](#移除(git remote remove/rm))


对远程仓库的操作

介绍

远程仓库是托管在网络中的 Git 仓库

  • 常见的平台有 GitHub、Gitee、GitLab 等
  • 我们可以与远程仓库进行同步、协作开发、备份等操作

查看 (git remote)

介绍

git remote

  • 查看当前 Git 仓库配置的远程仓库名称
  • (默认是origin)

如果添加 -v选项

  • 查看远程仓库名 + 详细 URL(fetch 和 push -- 拉取/推送代码)

查看详细信息

git remote show <remote> 命令 用于显示关于指定远程仓库的详细信息,不仅包括仓库的 URL,还包括一些其他关键的信息

  • 还会列出哪些远程分支 不在你的本地 / 已经从服务器上移除 , 执行 git pull 时,哪些本地分支可以与它跟踪的远程分支自动合并

添加(git remote add)

介绍

git remote add 新名字 地址

  • 给当前本地 Git 仓库 添加一个远程仓库地址,并起一个别名 -- 这样你之后就可以通过这个别名来操作远程仓库,而不用每次都写完整的 URL
  • 核心是添加了一个指向远程仓库的"地址标记",修改了本地仓库的.git/config 文件

与 git clone对比

从远程仓库中抓取与拉取

抓取(git fetch)

git fetch <远程仓库名>把远程仓库的新提交、分支(当前所有还没有 的数据)等内容下载到本地,但不会自动合并或改变你的当前工作分支

需要手动合并

  • 把远程的 origin/main 合并到你当前的分支

拉取(git pull)

git pull <远程名> <分支名>

  • 表示从远程仓库 originmain 分支抓取更新,并合并到你当前所在的分支
  • git fetch + git merge 的快捷方式 -- 从远程抓取最新数据 + 合并当前分支与远程分支

推送(git push)

介绍

当你想要将 master 分支推送到 origin (默认名)服务器时,使用 git push <remote> <branch> 命令可以将你所做的备份到服务器

  • eg: $ git push origin master

注意

成功推送的条件 -- 要有克隆服务器的写入权限 + 之前没有人推送过 (本地是"基于最新的")

  • 如果别人先你一步推送了新的提交,然后你再尝试推送你自己基于旧版本的提交,推送请求会被拒绝

  • 你必须先抓取他们的工作,并将其合并进你的工作后,才能推送

抓取更新+合并的方法

git fetch + git merge
  • 进行分支合并(远端和本地)时,如果你本地有修改过某个文件,而远程也对同一部分进行了修改,Git 无法自动合并,就会发生冲突
解决冲突

执行 git status 来查看哪些文件发生了冲突 -- 未解决的冲突文件标记为 unmerged

  • 也就是删除掉你认为不需要的内容
  • 注意,一定要把冲突标记全部删除 -- 否则Git 会认为你没有解决冲突,文件仍然处于冲突状态
  • 如果想要合并,就把标记删除即可

解决冲突后,使用 git add 将冲突文件标记为已解决,然后就可以进行提交+推送

git fetch + git rebase
  • 如果你本地的某个提交和远程的更新有冲突,Git 会停止 rebase 过程,提示你解决冲突
解决冲突

前面的步骤都是一样的,查看+手动处理+标记为已解决

完成后,继续进行rebase -- 执行 git rebase --continue 继续 rebase 过程

  • 如果还有其他冲突,git会再次停止,你需要重复上述过程,直到无冲突

完成rebase后,即可推送

git pull
对比

移除(git remote remove/rm)

git remote remove/rm

  • 从当前 Git 仓库的配置中移除指定的远程仓库 -- 意味着本地仓库将不再与该远程仓库进行交互 (删除了该远程仓库相关的远程跟踪分支+配置信息)
相关推荐
sduwcgg6 小时前
git经验
git
麻雀无能为力7 小时前
git的使用
git
算法歌者10 小时前
Visual Studio 项目 .gitignore 文件指南
git·visual studio
江边垂钓者10 小时前
git cherry-pick和git stash命令详解
git
Lw老王要学习10 小时前
Linux架构篇、第五章git2.49.0部署与使用
linux·运维·git·云计算·it
爱学习的张哥10 小时前
专栏项目框架介绍
git·fpga开发·udp·ddr·gt收发器
Aric_Jones13 小时前
lua入门语法,包含安装,注释,变量,循环等
java·开发语言·git·elasticsearch·junit·lua
Sapphire~19 小时前
odoo-049 Pycharm 中 git stash 后有pyc 文件,如何删除pyc文件
ide·git·pycharm
Willis_m1 天前
Linux 服务器用 SSH 拉取多个 Git 工程
linux·服务器·git·ssh
1candobetter1 天前
git如何将本地 dev 分支与远程 dev 分支同步
git