Git的远程操作与多人协作

这篇具有很好参考价值的文章主要介绍了Git的远程操作与多人协作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git的远程操作与多人协作,Git,git

"爱在地图上剥落,我离孤单几公里~" 


        我们目前所说、所学的内容(工作区、暂存区、版本库)都只是存在于本地上,也就是说你的一台机器上只有这么一个你维护的版本库。可是Git是一个分布式版本控制系统,这又是什么意思呢?

        ——前言 

一、远程操作 

(1) 如何理解分布式版本控制系统        

        可以理解为,每个在这个系统中的机器都有一份完整的版本库。这样,在你工作的时候就不需要联网了,因为你自己硬盘上就有一份版本库。由此,如果涉及到多人协作开发,就需要互相彼此推送修改状态,让对方看到。

        分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉了不要紧,随便从其他⼈那⾥复制⼀个就可以了。

        在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改,因为可能你们俩不在⼀个局域⽹内,两台电脑互相访问不了。因此,分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑,但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。
Git的远程操作与多人协作,Git,git

(2) 远程仓库介绍

        Git是分布式版本控制系统,同⼀个Git仓库,可以分布到不同的机器上。可是怎么分布呢?你说分布就分布?

        最早,肯定只有⼀台机器有⼀个原始版本库,此后,别的机器可以“克隆”这个原始版本库,⽽且每台机器的版本库其实都是⼀样的,并没有主次之分。

        实际情况是,需要找一台计算机当服务器的角色,每天24⼩时开机,其他每个⼈都从这个“服务器”仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中拉取别⼈的提交。不过好在,现实中已经有这样的服务器存在,就像国外的神奇网站:GitHub。但该网站的服务器在国外,所以访问很慢,有时候甚至访问不到。所以,本次演示是用国内的码云替代。

   

新建仓库:    Git的远程操作与多人协作,Git,git

        Git的远程操作与多人协作,Git,git

Git的远程操作与多人协作,Git,git         创建成功后,我们可以对远程仓库进⾏⼀个基本的设置:开源or私有。

Git的远程操作与多人协作,Git,git

        

克隆远程仓库:

         克隆/下载远端仓库到本地,需要使⽤ git clone 命令,后⾯跟上我们的远端仓库的链接,远端仓库的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接:

Git的远程操作与多人协作,Git,git

        SSH协议和HTTPS协议是Git最常使⽤的两种数据传输协议

● SSH协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由Git服务器进⾏管理。

● 使⽤HTTPS⽅式时,没有要求,可以直接克隆下来。

使用https方式:
Git的远程操作与多人协作,Git,git
 
使用ssh方式:

         选用ssh渠道进行复制。       Git的远程操作与多人协作,Git,git

        正如我们预期一样,使用ssh不能这样clone远端仓库。 Git的远程操作与多人协作,Git,git

         使⽤SSH⽅式克隆仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的clone链接。需要我们设置⼀下:

        ● 创建SSH Key。在⽤⼾主⽬录下,看看有没有.ssh⽬录,如果有,再看看这个⽬录下有没有
"id_rsa 和 id_rsa.pub" 这两个⽂件,如果已经有了,可直接跳到下⼀步。如果没有,需要创建。

 # 创建命令
ssh-keygen -t rsa -C "xxxx@qq.com"(注意填写自己的git上的默认邮箱)

         此时只需要一路回车,等待过程结束。        Git的远程操作与多人协作,Git,git

        顺利的话,可以看到.ssh目录下⾥⾯有 id_rsa 和 id_rsa.pub 两个⽂件。这两
个就是SSHKey的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告
诉任何⼈。        Git的远程操作与多人协作,Git,git

         显然秘钥对是一个很长的字符串。

        ● 添加⾃⼰的公钥到远端仓库。
Git的远程操作与多人协作,Git,git

        当然,之后你就可以发现会有一把公钥。

Git的远程操作与多人协作,Git,git

        如果有多个⼈协作开发,GitHub/Gitee允许添加多个公钥,只要把每个⼈的电脑上的
Key都添加到GitHub/Gitee,就可以在每台电脑上往GitHub/Gitee上提交推送了。

        现在我们,继续使用ssh的方式出clone远程仓库:        Git的远程操作与多人协作,Git,git
 

查看远程仓库状态:

        当我们从远程仓库克隆后,实际上Git会⾃动把"本地的master分⽀"和“远程的master分⽀”对应起来,并且,远程仓库的默认名称是origin。

# 查看远程仓库信息
git remote -v
# 查看远程仓库分支
git branch -r
# 打印本地+远程仓库分支
git branch -a
# 查看远程与本地分支建立情况
git branch -vv

Git的远程操作与多人协作,Git,git         上⾯显⽰了可以抓取(fetch)和推送(push)的origin的地址。如果没有推送权限,就看不到push的地址。推送是什么意思呢?

       

向远程仓库推送:

        本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增⼀个 file.txt ⽂件:                Git的远程操作与多人协作,Git,git

        值得注意的是,如果我们之前设置过全局的name和e-mail或者从来没有设置过全局的name和e-mail,这两项配置需要和gitee上配置的⽤⼾名和邮箱⼀致,否则会出错。那么如何进行配置呢?这里也就不多说了。

        到这⾥我们已经将内容提交⾄本地仓库中,如何将本地仓库的内容推送⾄远程仓库呢?

# 该命令⽤于将本地的分⽀版本上传到远程并合并
git push <远程主机名> <本地分⽀名>:<远程分⽀名>

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

Git的远程操作与多人协作,Git,git

注: 因为我们是ssh建立的远程仓库,所以在推送操作时是免用户名,免密的。反观 https每次推送都需要用户名+密码。
        推送完成后,我们也就可以在远端仓库中看到这一推送信息。

Git的远程操作与多人协作,Git,git       

 拉取远程仓库:

        在gitee上点击README.md⽂件并在线修改它(这里只是为了演示,实际中这是一个不好的行为):        

Git的远程操作与多人协作,Git,git        此时,远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。

# 从远程获取代码并合并本地的版本
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>

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

Git的远程操作与多人协作,Git,git

        这样我们就拉取成功了!
 

(3) 配置Git 

忽略特殊文件:

        在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让Git知道呢?在Git⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git就会⾃动忽略这些⽂件了。        Git的远程操作与多人协作,Git,git

         在创建仓库时,可以选择添加该模板,这样就不需要从头写 .gitignore ⽂件。如果当时没有选择这个选择,在⼯作区创建⼀个也是可以的。
        例如,如果我们想忽略.so和.ini结尾的所有文件,我们需要在.gitignore的内容中添加:

        做完这些工作后,我们将代码进行提交。

Git的远程操作与多人协作,Git,git         当我们打开远端仓库时,我们会发现.ignore里的文件是没有被提交的。         Git的远程操作与多人协作,Git,git

强制添加:

        但有些时候,你就是想添加⼀个⽂件到Git,但由于这个⽂件被 .gitignore 忽略了,根本添加不了,那么可以⽤ -f 强制添加:git add -f [filename].       Git的远程操作与多人协作,Git,git
         此时我们的远端仓库里,就会出现一个被忽略的文件。

Git的远程操作与多人协作,Git,git

命令别名:

        举个例子将"git status" 起一个"git st"的别名:

git config --global alias.st status

--global 参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有⽤。如果不加,那只
针对当前的仓库起作⽤。 

Git的远程操作与多人协作,Git,git

二、标签管理

(1) 创建标签

         在Git中打标签⾮常简单,⾸先,切换到需要打标签的分⽀上:

# 打标签
git tag [tag_name]
# 查看所有标签
git tag
# ⽤-a指定标签名 -m指定说明⽂字
git tag -a [name] -m "XXX" [commit_id]

Git的远程操作与多人协作,Git,git

         默认标签是打在最新提交的 commit 上的,所以我们可以借用“git cat-file -p [commit id]”,查看master指向的最新一个版本:  Git的远程操作与多人协作,Git,git         那么如何个历史上的commit id打上标签呢?答案是找到历史上的commit id即可。再使用命令:" git tag [tag_name] [commit id]"。

注意,标签不是按时间顺序列出,⽽是按字⺟排序的。
 

       

(2) 操作标签

查看标签的详细信息:

# 查看标签信息
git show [tagname] 

Git的远程操作与多人协作,Git,git

删除标签:

        因为创建的标签都只存储在本地,不会⾃动推送到远程。所以,打错的标签可以在本地安全删除。

# 删除标签
git tag -d [tag_name]

Git的远程操作与多人协作,Git,git

         

标签推送:

# 推送某个标签到远程
git push origin [tag_name]
# 推送多个标签
git push origin --tags

        本地向远端推送: 

Git的远程操作与多人协作,Git,git

         我们再来看看远端的仓库:

Git的远程操作与多人协作,Git,git

Git的远程操作与多人协作,Git,git         如果标签已经推送到远程,要删除远程标签就⿇烦⼀点,先从本地删除:        Git的远程操作与多人协作,Git,git

        然后,从远程删除。删除命令也是push,但是格式如下:
Git的远程操作与多人协作,Git,git

Git的远程操作与多人协作,Git,git


 三、多人协作

(1) 仓库Init

        目前,咱们完成了以下的几个任务:

• 基本完成Git的所有本地库的相关操作,git基本操作,分⽀理解,版本回退,冲突解决等
• 申请码云账号,将远端信息clone到本地,以及推送和拉取。

        是时候⼲最重要的⼀件事情了,实现多⼈协作开发!为了做这件事情,我们需要先做⼀些准备⼯作。我们之前已经将项⽬clone到了指定⽬录。我们将之前提交的一些无关紧要的文件干掉,留下一个干净的仓库:        Git的远程操作与多人协作,Git,git
         我们在Windows环境中模拟你的另一位伙伴。我们在gitcode文件下,使用“小乌龟"clone这个远程仓库。Git的远程操作与多人协作,Git,git

         在实际开发中,一个仓库内会有多么成员,因为目前资源有限。如果要进行多人协作开发,必须要将⽤⼾添加进开发者,⽤⼾才有权限进⾏代码提交。
Git的远程操作与多人协作,Git,git

       Git的远程操作与多人协作,Git,git

         

新建分支:

         到此,相当于有了两个⽤⼾,分别在linux和windows上针对于同项⽬进⾏协作开发,我们的准备⼯作到此结束。

        ⽬前,我们的仓库中只有⼀个master主分⽀,但在实际的项⽬开发中,在任何情况下其实都是不允许直接在master分⽀上修改代码的,这是为了保证主分⽀的稳定。因此,接下来我们就得在gitee上创建dev远程分支供我们使用。

Git的远程操作与多人协作,Git,git

        新增分支dev。 Git的远程操作与多人协作,Git,git

        创建成功的远程分⽀是可以通过Git拉取到本地来,以实现完成本地开发⼯作。

Git的远程操作与多人协作,Git,git         此时对于我们而言要做的是查看远程分支(git branch -r):        Git的远程操作与多人协作,Git,git

        对远端仓库的分支进行拉取后,就可以看到远端的分支。要说明的是

        ① 我们也需要在本地创建dev1分支,并切换到dev1分支上进行开发。

        ② 我们默认拉取master分支时,Git会自动帮我们把 origin/master 和 本地master进行连接。上述操作示例,会将本地分⽀dev1和远程dev1分支进⾏关系链接。
 

         对于⼩伙伴要操作的是: 首先建立另外一条分支dev2

Git的远程操作与多人协作,Git,gitGit的远程操作与多人协作,Git,git         

协作开发:

        现在你和你的小伙伴分别在dev1 、 dev2上进行开发,开发什么呢?实现一个四则运算的哈数接口吧。

● 基于Linux环境开发的你:        Git的远程操作与多人协作,Git,git

         我们来看看远端仓库分支情况:        Git的远程操作与多人协作,Git,git

         emm很好,如我们预期一样代码被提交上来了。

        因为你和你的小伙伴约定好了,当你写完加法和减法函数后,基于这个代码再实现剩余的运算。因此,你现在dev1分支下开发完了代码cal.hpp,并且测试是稳定的。因此,你会选择将该分支路径上的版本与master分支进行合并!

如何理解Pull Reqest:           Git的远程操作与多人协作,Git,git

         创建完成后,我们就可以在Pull Request集中找到这个请求。Git的远程操作与多人协作,Git,git

Git的远程操作与多人协作,Git,git

        进行分支合并:        Git的远程操作与多人协作,Git,git        Git的远程操作与多人协作,Git,git         别忘了,分支合并完成就需要删除,当然也包括本地分支

Git的远程操作与多人协作,Git,gitGit的远程操作与多人协作,Git,git 

● 基于Windows环境开发的小伙伴:

        至此,你的小伙伴需要完成剩下的操作cal.hpp函数实现。 所以得为他创建一个分支dev2进行下一步开发。

Git的远程操作与多人协作,Git,git        Git的远程操作与多人协作,Git,git         推送远端仓库:

Git的远程操作与多人协作,Git,git

        我们再来看看我们的远端仓库:

Git的远程操作与多人协作,Git,git                 

        接下来就同之前的操作无异,将dev2分支上的代码合并到master分支上。

Git的远程操作与多人协作,Git,git

        

在合并之前切换到master分支,pull一下是个好习惯:

        在实际开发中,不止你一条分支会进行开发,而是多条并行开发的情况居多。

Git的远程操作与多人协作,Git,git

        所以更好的做法应该是在合并之前 pull 更新master。        

Git的远程操作与多人协作,Git,git

远程分⽀删除后,本地gitbranch-a依然能看到的解决办法:

        我们会发现,远程仓库中已经将分支dev2删除了。

Git的远程操作与多人协作,Git,git
         但是本地仓库还是能够查到这条并不存在的分支信息。        Git的远程操作与多人协作,Git,git               

# 查看remote地址,远程分⽀,还有本地分⽀与之相对应关系等信息
git remote show origin

         Git的远程操作与多人协作,Git,git

# 移除不存在的远程分支
git remote prune origin

Git的远程操作与多人协作,Git,git         这样,不存在的远端分支被移除了。 


本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~

Git的远程操作与多人协作,Git,git文章来源地址https://www.toymoban.com/news/detail-613656.html

到了这里,关于Git的远程操作与多人协作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 多人协作开发

    任务名称: 任务描述: 任务优先级:1(1最优先) 周期:10ms和1ms README.md为markdown语言编写的文件,可使用 typora 软件进行读写。 版本 时间 更新说明 修订者 V0.1 2023/10/27 base版本 在主库已经存在的情况下,日常操作流程如下: Git 全局设置

    2024年04月10日
    浏览(50)
  • 【Git原理与使用】-- 多人协作

    目录 多人协作一(多人同一分支) 开发者一(Linux) 开发者二(Windous) master合并 远端上的合并 本地上的合并 总结 多人协作一(多人多分支) 开发者一(Linux) 开发者二(Windous) master合并 合并function-2 合并function-1 远程分支删除后,本地 git branch -a 依然能看到的解决办法

    2024年02月08日
    浏览(44)
  • 如何使用 Git 进行多人协作开发(全流程图解)

     在软件开发中,多人协作是一项必不可少的任务。而 Git 作为目前最受欢迎的分布式版本控制工具,提供了强大的功能和灵活的工作流程,使得多人协作开发变得更加高效。本篇博客将带你实践如何正确使用 Git 进行多人协作开发  在本篇博客中,你将学到以下内容: Fea

    2024年02月05日
    浏览(50)
  • 【掌握版本控制:Git 入门与实践指南】多人协作

                                                      🎬慕斯主页 : 修仙—别有洞天                                               ♈️ 今日夜电波: 泥中に咲く—ウォルピスカーター                                                      

    2024年03月16日
    浏览(55)
  • Git企业开发控制理论和实操-从入门到深入(六)|多人协作开发

    那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏《Git企业开发控制理论和实操》希望大家多多关注!

    2024年02月11日
    浏览(52)
  • 【项目多人协作的困扰】git-cli 解决 git merge 合并时 lock 文件变化,忘记重新安装依赖的问题

    相信大家多多少少都遇到过,当主线分支的代码,合入到自己的分支的时候,如果这时候,主线中有一些 依赖的更新或者添加或者删除 ,如果合入之后,没有及时的 install 的话,项目启动的时候,可能就会报错! 使用教程 打开项目根目录,运行 随后就会在你的项目中开始

    2024年02月14日
    浏览(46)
  • 用Git远程仓库实现多人协同开发

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 分支 初识分支 分支-合并与删除 分支-合并与提交 分支-合并冲突 Git 常用命令 Git 远程仓库  Git 远程仓库-克隆  多人协同开发  Git 常用命令  ​编辑 概念 :本质上是指

    2024年02月15日
    浏览(44)
  • GIt与IDEA结合,多人操作gitee仓库

    提交到本地 push到gitee远程仓库 在做这些之前注意配置git要忽略上传的文件,一般上传代码只上传src和pom.xml即可 在c盘用户里放置 git.ignore .gitconfig文件打开配置 在gitee创建仓库,把gitee仓库地址复制在push的时候粘贴进去即可提交. 接下来模拟多人合作 这是另一个成员克隆下来 查

    2024年01月19日
    浏览(54)
  • GitHub的分支操作和多人协作

    目录 一、远程仓库 二、创建与合并分支 三、Bug分支 四、多人协作 在了解之前,先注册github账号,由于本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要以下设置: 第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有i

    2024年02月13日
    浏览(43)
  • Git第十一讲 Git远程仓库操作

    远程仓库是与他人共享代码并进行协作开发的关键。Git 提供了丰富的功能来管理远程仓库,包括拉取、推送和解决冲突等操作。本章将介绍如何有效地进行远程仓库操作。 拉取和推送是与远程仓库进行数据同步的常用操作。通过拉取,你可以获取远程仓库中的最新更改并合

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包