(ÒωÓױ) 玩转 Git :如何在同一台电脑上模拟 Git 多用户环境

版权声明:本文为博主原创文章,未经博主允许不得转载哦 (ÒωÓױ) https://blog.csdn.net/u012814856/article/details/85249083

一、引言

最近在工作中遇到了一些 Git 上的问题,虽然解决了,但还是心有不甘,想要去找一本书来系统学习一下 Git(之前都是廖雪峰老师的 Git 教程入门),于是便找到了《Mastering Git》这本书。

学习过程中,我们总会想要去模拟多用户使用 Git 的环境来对比学习 Git 的使用方法,其或者是因为我们想要看到多用户提交的 git log 记录,或者是因为我们想要玩玩 Git 的多分支管理,又或者仅仅是想要看看不同用户角度中的 repository 究竟是什么样的。总之,这些触动都是我写下这篇博客的原因,因为尽管模拟多 Git 用户环境是件很简单的事情,但是网上却没有相关的博客介绍来帮助各位 Git 新人解决这个问题。

这篇博客希望大家可以跟着一起动手做,需要的东西很简单,一个可以正常创建仓库的 GitHub 账号,一个已经安装了 Git 的 PC 电脑(这里我使用的是 Windows 的 wsl Ubuntu 系统)即可。接下来,让我们手把手一起来创建这个有意思的场景吧:)

二、创建仓库与克隆仓库

1. 创建仓库

使用 GitHub 来创建一个远程仓库并不是一件很难的事情,因此这里我也不打算细细的谈论这个。这里我简单的截一个创建本博客使用仓库的图即可:
1

点击 Create repository 即可。

2. 克隆仓库

当我们创建完了仓库之后,自动会跳转到空白的仓库界面:
2

这里,可以看到 GitHub 提供给我们的克隆仓库的方法有两个,一个是 HTTPS,另一个则是 SSH。

那么有趣的地方就在这里,这两种方式各有什么区别呢?

简单来说,:

  1. HTTPS 的方式,当你克隆的时候,需要输入 GitHub 的用户名和密码验证通过后才能成功克隆仓库
  2. 而 ssh 的方式,需要 ssh key 的授权,而该授权 key 是通过 ssh key 生成器生成的,其生成的公钥需要放到 GitHub 上留存作为认证的凭证,因此当你使用 ssh 的方式克隆仓库时,只要你正确设置了 ssh key 就可以省略输入用户名和密码的操作了

因此,使用 HTTPS 的方式亦或是 ssh 的方式随你而定,前者不用预先配置 ssh key,后者不用输入用户名密码。

这里,我个人使用了 HTTPS 的方式来克隆仓库:

  1. 创建一个总的文件夹,来用放置多用户本地仓库目录
    $ cd ~
    $ mkdir Multi_Git_User_Simulate
    $ cd Multi_Git_User_Simulate
    
  2. 输入 GitHub 的用户名和密码,稍微等待即可克隆完成
    $ git clone https://github.com/wangying2016/Multi_Git_User_Simulate.git
    

三、模拟 Git 多用户环境

在上一节中我们已经完成了 GitHub 远程仓库的创建与克隆,现在我们来模拟两个 Git 用户对该远程仓库进行 Git 的基本操作。

1. 我是 Bob,我想要提交第一个文件

将第二节中克隆下来的工作目录重命名为 Bob 的工作目录

$ cd ~/Multi_Git_User_Simulate
$ mv Multi_Git_User_Simulate Multi_Git_User_Simulate_Bob

修改本地用户名为 Bob

$ git config --local user.name Bob
$ git config --local user.name [email protected]

Bob 进行第一个文件的提交

$ vi file.txt
This is the first file to be commit.
$ git add file.txt
$ git commit -m "Bob's first commit"

推送远端仓库,等待输入用户名和密码即可

$ git push 

此时,我们已经可以在 GitHub 上的远端仓库中看到 Bob 的提交记录了
3

2. 我是 Alice,我想要修改 Bob 的文件

我们需要模拟出另一个用户 Alice 的本地工作目录,于是按照第二节中的克隆步骤即可(仍然需要输入用户名和密码)

$ cd ~/Multi_Git_User_Simulate
$ git clone https://github.com/wangying2016/Multi_Git_User_Simulate.git

然后重命名项目文件夹名称

$ mv Multi_Git_User_Simulate Multi_Git_User_Simulate_Alice

设置本地 Git 用户信息

$ cd Multi_Git_User_Simulate_Alice
$ git config --local user.name Alice
$ git config --local user.name [email protected]

Alice 修改文件

$ vi file.txt
This is the first file to be committed.
$ git commit -a -m "Alice modified file.txt"

推送远端仓库(仍然需要输入用户名和密码)

$ git push

此时,我们又可以在 GitHub 的远端仓库中看到 Alice 的提交记录

4

至此,我们已经成功使用 git config --local + 多 git clone 目录的方式实现了 Git 多用户环境的搭建。

实现了这么一个环境,你想要学习 Git 的多用户协作相关的知识就有实验环境了 ^_^

三、总结

Git 说到底还是一种工具,需要前期的系统的学习外加后期的大量的实战才能够真正玩转它。

希望本篇博客能够给大家一些帮助

To be Stronger:)

猜你喜欢

转载自blog.csdn.net/u012814856/article/details/85249083