Git 远程仓库&多人协作

简介: Git 远程仓库&多人协作

前言

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。那么该怎么分布呢?首先肯定得有一台机器充当“原始库”,然后别的机器就可以“克隆”这个原始版本库。那么究竟谁来充当这个”原始库“的角色呢?

实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

其实完全可以自己搭建一台运行 Git 的服务器,但是还有更好的方案。好在世界上还有像 GitHub、Gitee 这类神奇的网站。这些网站就是提供 Git 仓库托管服务的,所以,只要注册一个账号,就可以免费获得 Git 远程仓库。

一、操作远程仓库

这里关于创建远程仓库就不再讨论了,这类教程网上有很多,大家可以自行参考。

1、克隆远程仓库

克隆一个远程仓库非常简单,只需要指向如下命令即可:

# 从远程库克隆一个本地仓库
git clone <SSH/HTTPS>

2、向远程仓库推送

# 推送远程仓库
git push <远程仓库名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程仓库名> <本地分⽀名>

# 例如我们要将本地的 master 分⽀推送到 origin 主机的 master 分⽀
git push origin master

3、拉取远程仓库

如果在协作开发下,由于其他用户的推送,远程仓库可能是要领先于本地仓库好几个版本的,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git 提供了 git pull 命令,该命令⽤于从远程获取代码并合并本地的版本。

git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git pull <远程主机名> <远程分⽀名>

# 拉取远程分⽀,并与当前分⽀进⾏合并
git pull origin master

4、删除远程库

如果添加的时候地址写错了,或者就是想删除远程库,可以用 git remote rm <name> 命令。使用前,建议先用 git remote -v 查看远程库信息。

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

二、多人协作

查看分支

# 查看本地分支
git branch 
# 查看远程分支
git branch -r
 
# 查看所有分支(本地+远程)
git branch -a

查看分支与关联

# 使用下面命令可以查看remote地址,远程分⽀,还有本地分⽀与之相对应关系等信息
git remote show origin
 
远程仓库已经不存在的分⽀,根据提⽰,使⽤git remote prune 
origi

创建切换并关联

例如:git checkout -b dev origin/dev 是一个 Git 命令,用于在本地创建一个名为 “dev” 的新分支并切换到当前分支,并将该分支与远程仓库中的 “origin/dev” 分支关联起来。

git checkout -b dev origin/dev

其实多人协作也很简单:

  1. 首先,可以试图用git push origin 推送自己的修改;
  2. 如果推送失败,说明你的小伙伴的最新提交和你推送的提交有冲突,解决办法也很简单,先用 git pull 把最新的提交从 origin/dev 抓下来,然后,在本地进行合并,并解决冲突,再推送。
  3. 上述说讲的一般是用于开发的分支 dev,如果功能开发完毕,需要切回主分支 master,然后 pull 一下,保证本地的 master 是最新内容(合并前这么做是一个好习惯)
  4. 切换至 dev 分支,合并 master 分支。这么做是因为如果有冲突,可以在dev分支上进行处理,而不是在在、master上解决冲突。(这么做是⼀个好习惯)
  5. 切换至 master 分支,合并 dev 分支,将 master 分至推送至远端。

这里需要注意的是,如果 pull 失败(出现 there is no trance……)说明当前分支没有与远程分支建立关联,可以使用如下命令进行关联,然后再 pull:

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

git branch --set-upstream-to=<远程主机名>/<远程分支名> <当前分支名>


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