Git 的正确使用姿势和最佳实践:团队协作和版本控制的最佳实战 | 青训营

44 阅读7分钟

一、Git基本概念。

1.Git是什么?

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。使用Git,每次提交或保存项目状态时,Git基本上都会记录当时所有文件的外观,并存储对该快照的引用。为了提高效率,如果文件没有改变,Git不会再次存储文件。

2.版本控制:

是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

分布式版本控制:

  • 代表性工具:Git
  • 分布式版本控制(DVCS)是一种不需要中心服务器的管理文件版本的方法,但是它也可以使用中心服务器。
  • 分布式版本控制系统的两个主要优点是:
    • 它比集中的版本控制更灵活,因为它除了支持传统的(集中式)工作流,还支持其他各种工作流;
    • 它比集中式服务器快得多,因为大多数操作在客户机本地进行,而不需要网络操作。

3.发展历史:

最初版由 Liunx 创始人 Linus Torvalds 花两周时间开发而成,主要是为了用于 Linux 项目的维护。

二、Git的基本使用方法:

1.Git的安装:

可以从其官网下载:Git

下载完成后可以通过:git -v检查是否下载成功以及版本信息。

2.Git的配置:

git config --global user.name "your name"
git config --global user.email "your.email@example.com"

这两个命令是用来配置 Git 的用户名和电子邮件地址的。Git 会使用这些信息来标记每次提交的作者。

当你运行 git config --global user.name "your name" 时,你是在设置你的全局用户名。这个用户名会用于你所有的 Git 提交。将 "your name" 替换成你每次提交时显示的名字。

类似地,git config --global user.email "your.email@example.com" 是用来设置你的全局电子邮件地址。将 "your.email@example.com" 替换成你每次提交时使用的电子邮件地址。

3.Git的基本操作:

Git的基本操作:

  • Git init:用来初始化一个Git仓库,执行完命令后会生成一个.git目录。
  • Git clone:从现有的Git仓库中拷贝项目,也就是下载一个项目。
  • Git add:把工作区的改动添加到暂存区。

git add命令用于将文件添加到Git仓库中。

git add命令的基本语法如下:

git add <file>

其中:

  • <file>是你想添加到Git仓库中的文件路径。

执行git add命令后,文件会从工作目录移动到Git仓库的暂存区中,等待提交。

你也可以使用git add命令一次添加多个文件,例如:

git add file1.txt file2.txt file3.txt

此外,还可以使用git add命令添加整个目录,例如:

bashgit add my_directory/

这将把my_directory目录下的所有文件都添加到Git仓库的暂存区中。

  • Git commit:把暂存区的改动提交到仓库。
  • Git push:把本地仓库的改动推送到远程仓库。
  • Git pull:从远程仓库拉取代码并合并。

三、Git的远程协作:

1.Git remote:

Git remote是一个用来创建、查看和删除本地仓库与其他代码仓库之间连接的命令。

使用Git remote命令可以添加、修改和删除远程库配置,也可以将本地仓库推送到远程仓库,或者从远程仓库拉取代码。

常用的Git remote命令如下:

  • git remote add:创建一个新的远程库连接。
  • git remote rm:删除一个远程库连接。
  • git remote rename:重命名一个远程库连接。
  • git remote set-url:修改一个远程库的URL。
  • git remote show:显示远程库信息。

2.Git fetch:

git fetch命令用于从远程仓库获取分支的更新,并更新本地仓库。

git fetch命令的基本语法如下:

git fetch <remote-name>

其中:

  • <remote-name>是你想获取更新的远程仓库的名称。

执行git fetch命令后,Git会从指定的远程仓库中获取最新的分支信息,并将其存储到本地仓库中。你可以使用git log -p命令查看更新的详细信息。

如果你想获取特定分支的更新,可以在<remote-name>后面指定分支名,例如:

git fetch origin master

这将从名为origin的远程仓库中获取master分支的更新。

3.Git merge:

git merge命令用于将指定分支合并到当前分支。

git merge命令的基本语法如下:

git merge <branch-name>

其中:

  • <branch-name>是你想合并的分支的名称。

执行git merge命令后,Git会将指定分支的最新修改合并到当前分支中。如果存在冲突,需要手动解决冲突后,再使用git commit命令提交合并结果。

4.Git rebase:

git rebase命令用于将当前分支的修改应用到另一个分支上,实现分支的合并。

git rebase命令的基本语法如下:

git rebase <branch-name>

其中:

  • <branch-name>是你想将当前分支的修改应用到另一个分支的名称。

执行git rebase命令后,Git会将当前分支的修改按时间顺序应用到<branch-name>分支上。如果存在冲突,需要手动解决冲突后,再使用git rebase --continue命令继续应用修改。如果需要放弃rebase操作,可以使用git rebase --abort命令。

需要注意的是,git rebase命令会改变提交历史,因此需要谨慎使用。

5.远程协作:

建立仓库:

  1. 创建一个远程仓库:首先,你需要创建一个远程仓库,以便团队成员可以将其克隆到本地并进行协作。你可以使用以下命令创建一个新的远程仓库:
csharpgit init --bare <remote-repo-name>.git

这将创建一个新的远程仓库,名称为<remote-repo-name>.git

  1. 克隆远程仓库:团队成员可以使用以下命令将远程仓库克隆到本地:
bashgit clone <remote-repo-url>

这将创建一个本地副本,并将其与远程仓库进行关联。

  1. 添加远程仓库:如果团队成员需要将其本地仓库与远程仓库进行关联,可以使用以下命令添加远程仓库:
csharpgit remote add <remote-name> <remote-repo-url>

其中,<remote-name>是远程仓库的名称,<remote-repo-url>是远程仓库的URL。

SSH的添加:

  1. 生成SSH密钥:

    • 打开终端或命令行界面。
    • 运行以下命令生成SSH密钥:
    bash`ssh-keygen -t rsa -b 4096`
    

    这将生成一对公钥和私钥文件,默认情况下它们将存储在&#126;/.ssh目录下。

  2. 复制公钥:

    • 在终端或命令行界面中,运行以下命令复制公钥:
    bash`pbcopy < &#126;/.ssh/id_rsa.pub`
    

    这将将公钥复制到剪贴板。

  3. 进入仓库目录:

    • 在终端或命令行界面中,导航到存储库的根目录。
  4. 创建.ssh文件夹:

    • 如果.ssh文件夹不存在,请运行以下命令创建它:
    bash`mkdir .ssh`
    
  5. 创建authorized_keys文件:

    • 运行以下命令创建一个名为authorized_keys的文件:
    bash`touch .ssh/authorized_keys`
    
  6. 将公钥添加到authorized_keys文件:

    • 运行以下命令将公钥添加到authorized_keys文件中:
    bash`cat >> .ssh/authorized_keys`
    

    然后按Enter键。

    • 然后,粘贴之前复制的公钥。
    • 按Ctrl + D或输入exit以保存并退出编辑器。
  7. 设置正确的文件权限:

    • 运行以下命令以确保正确的文件权限设置:
    bash`chmod 700 .ssh && chmod 600 .ssh/authorized_keys`
    
  8. 验证设置:

    • 在终端或命令行界面中,尝试使用以下命令进行SSH连接测试:
    bash`ssh -T git@github.com`
    

    如果连接成功,您将看到欢迎消息。如果失败,请检查您的网络连接和配置。

现在,您已成功将SSH密钥添加到仓库中。其他团队成员可以将他们的公钥添加到同一个.ssh文件夹中,以便能够通过SSH进行克隆、推送和拉取操作。

总结

本文从 Git 的基本相关概念开始、到Git的使用方法、最后到Git的远程协作层层递进。大致介绍了Git的基本相关概念,Git是分布式版本控制的代表工具等等。然后到介绍相应的基本使用操作,最后再到远程操作的实践。在最后一部分还介绍了使用Git建立仓库,以及添加ssh的方法实现团队的远程协作。