Git 远程仓库多人协作

devtools/2024/9/22 19:28:51/

文章目录

    • 前言
    • 一、操作远程仓库
      • 1、克隆远程仓库
      • 2、向远程仓库推送
      • 3、拉取远程仓库
      • 4、删除远程库
    • 二、多人协作

前言

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

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

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

一、操作远程仓库

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

1、克隆远程仓库

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

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

2、向远程仓库推送

git"># 推送远程仓库
git push <远程仓库名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程仓库名> <本地分⽀名># 例如我们要将本地的 master 分⽀推送到 origin 主机的 master 分⽀
git push origin master

3、拉取远程仓库

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

git">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">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=<远程主机名>/<远程分支名> <当前分支名>

http://www.ppmy.cn/devtools/8320.html

相关文章

Stable Diffusion UI 从安装到实现文字图片融合(光影字,错觉图)图片制作详细教程

前言 最近在实践大模型本地部署&#xff0c;前几天在本地部署了一个ChatGLM大模型&#xff0c;刚好环境搭好了&#xff0c;也支持跑Stable Diffusion&#xff0c;所以就安装了再尝试一下。 原因是之前在B站上有大佬做了一个Windows电脑能一键运行的Stable Diffusion的安装包&…

LeetCode第797题: 所有可能的路径

目录 1.问题描述 2.问题分析 1.问题描述 给你一个有 n 个节点的有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特定顺序&#xff09;。 graph[i] 是一个从节点 i 可以访问的所有节点的列表&#xff08…

C语言修炼——什么是流?什么是文件?什么是文件操作?

目录 一、为什么使用文件&#xff1f;二、什么是文件&#xff1f;2.1 程序文件2.2 数据文件2.3 文件名 三、二进制文件和文本文件四、文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭 五、文件的顺序读写5.1 顺序读写函数介绍a. fgetcb.…

服务器Linux上杀死特定进程的命令:kill

1、查看用户XXX正在运行的进程 top -u xxx2、查看想要杀死的进程对应的PID 先找到此进程对应的命令 取其中的main-a3c.py即可 ps -aux | grep main-a3c.py可以看到对应的PID是1325390使用kill杀死对应PID的进程 kill -9 1325390成功&#xff0c;gpustat可以看到之前一直占…

Java最短路径问题知识点(含面试大厂题和源码)

最短路径问题是图论中的一个经典问题&#xff0c;它寻找图中两点之间的最短路径。这个问题在现实世界中有广泛的应用&#xff0c;比如导航系统中的路线规划、网络中的信息传输等。解决最短路径问题有多种算法&#xff0c;其中最著名的包括&#xff1a; 贝尔曼-福特算法&#xf…

对称加密与非对称加密有什么区别?

本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 对称加密与非对称加密有什么区别&#xff1f; 对称加密与非对称加密有什么区别&#xff1f; 对称加密和非对称加密是用于确保数据和通信安全的两种加密技术&#xff0c;但它们在加密和…

木马——文件上传

目录 1、WebShell 2.一句话木马 靶场训练 3.蚁剑 虚拟终端 文件管理 ​编辑 数据操作 4.404.php 5.文件上传漏洞 客户端JS检测 右键查看元素&#xff0c;删除检测代码 BP拦截JPG修改为php 服务端检测 1.MIME类型检测 2.文件幻数检测 3.后缀名检测 1、WebShell W…

实用VBA:19.Excel一键修复文件链接

1.需求场景 此前与大家分享过一键提取文件目录和文件名的方法&#xff0c;并且VBA中加一句语句就可以使提取出来的文件名带有链接&#xff0c;这样很方便在对大量文件进行检查时不必在资源管理器里到处翻目录&#xff0c;所见即所得&#xff0c;点击文件名即可打开文件。是个实…