从零开始使用git版本控制(安装与常用命令集合)

注意:教程并非官方教程,任然存在缺漏不足的地方,本教程主要侧重于!!安装 !!,建议配合其他使用类教程食用

目录

一、介绍

二、安装

三、使用准备

接下来的常用操作教程部分将需要用到github这类远程仓库的协作,需要有一个远程的仓库才能使用部分命令 ; 所以......请先查看下一个教程创建一个仓库再返回本教程

四、常用git操作

五、图形化界面


一、介绍

Git 是一个分布式版本控制系统,主要用于跟踪和管理文件的更改,尤其是在软件开发项目中。它能够帮助开发者协作开发项目,并记录每个文件的修改历史,以便在需要时回退到之前的版本。

简单来说:你和几个人同时做一个项目,可以让不同功能同时进行开发,出bug可以找回之前没出bug的版本代码,出错可以及时找到对应负责人

二、安装

1、进入官网点击Downloads

2、选择你要安装的系统版本(这里以win举例)

3、这里下载Standalone Installer版本的64位安装程序

Portable ("thumbdrive edition")便携版/U盘版本,主要是下载在U盘中使用的

注意git不像其他软件一样有个长期支持版本LTS所以最新版本往往功能更多bug相对较少

4、下载完成打开文件

5、开始安装,点击next

6、选择安装位置

git推荐默认位置(直接next)

1、方便后续查找到安装位置

2、git占用空间不大并且基本不会增长

7、选择需要添加的组件和功能 (个人建议勾选12345)

当然后续用到的时候重新启动安装程序,他会检测你是否安装了,如果安装了那就会进入修改界面

  • Additional icons

    • On the Desktop:在桌面上创建 Git 的快捷方式图标。

  • Windows Explorer Integration

    • Open Git Bash here:在 Windows 资源管理器中右键单击文件夹时,提供“在此处打开 Git Bash”选项

    • Open Git GUI here:在 Windows 资源管理器中右键单击文件夹时,提供“在此处打开 Git GUI”选项

  • Git LFS (Large File Support)

    • 支持 Git LFS,用于管理大文件。这可以帮助减少主 Git 仓库的大小

  • Associate .git configuration files with the default text editor*

    • .gitconfig 和其他 Git 配置文件与默认的文本编辑器关联,以便于编辑

  • Associate .sh files to be run with Bash

    • .sh 脚本文件与 Git Bash 关联,以便直接用 Git Bash 执行这些脚本

  • Check daily for Git for Windows updates

    • 每日检查是否有 Git for Windows 的更新。

  • (NEW!) Add a Git Bash Profile to Windows Terminal

    • 将 Git Bash 配置为 Windows Terminal 中的一个选项。

  • (NEW!) Scalar (Git add-on to manage large-scale repositories)

    • Scalar 是一个 Git 附加工具,用于管理大规模仓库。它提供了一些额外的功能和优化来处理大规模的 Git 仓库 

8、选择开始菜单目录(建议默认next)

9、选择编辑器

这里默认编辑器是vim这个编辑器没有图形化界面,如果不习惯使用建议更换一个你熟悉的

10、配置 Git 创建新仓库时初始分支的名称(建议选第二个)


Let Git decide:由 Git 自动决定默认的初始分支名称。Git 会根据其当前的默认设置来生成分支名,通常是 main(在较新版本中)或 master(在旧版本中)。

Override the default branch name for new repositories:允许你手动指定一个自定义的初始分支名称。你可以输入你希望作为新仓库初始分支的名称,如 mainmaster 或其他名称。

11、进入PATH配置界面(选择如何将 Git 配置到系统的 PATH 环境变量中)

建议选择第二个,因为第二个可以使用第三方图形化界面打开Git

  • Use Git from Git Bash only

    • 描述:将 Git 仅添加到 Git Bash 的 PATH 环境中。这意味着 Git 只能够从 Git Bash 窗口中访问,而不能从其他命令行工具(如 Windows 命令提示符或 PowerShell)中访问。
    • 适用情况:如果你只打算在 Git Bash 中使用 Git,或者希望避免 Git 在其他命令行工具中被访问,这个选项是合适的。
  • Git from the command line and also from 3rd-party software

    • 描述:将 Git 添加到系统的 PATH 环境变量中,使得 Git 可以从 Windows 命令提示符、PowerShell 和第三方软件中访问。
    • 适用情况:如果你希望在所有命令行工具(如 Windows 命令提示符、PowerShell 等)以及任何可能调用 Git 的第三方软件中都能使用 Git,这个选项是最佳选择。
  • Use Git and optional Unix tools from the Command Prompt

    • 描述:将 Git 和一些可选的 Unix 工具(如 grepawk 等)添加到系统的 PATH 环境变量中,使得你可以在 Windows 命令提示符和 PowerShell 中使用这些工具。
    • 适用情况:如果你希望在 Windows 命令提示符中使用 Git 及其他 Unix 工具,这个选项可以提供更多的功能和灵活性。

12、选择 Git 在操作 SSH 连接时使用的 SSH 执行程序()

这里建议默认选择第一个,因为配置简单易操作还不容易发生冲突

  • Use bundled OpenSSH

    • 描述:使用 Git 安装包中自带的 OpenSSH 版本。这是一个随 Git 一起提供的 SSH 客户端,不需要单独安装。
    • 适用情况:如果你希望简化设置并使用 Git 自带的 OpenSSH,选择这个选项。适合大多数用户,尤其是那些不希望额外配置 SSH 客户端的用户。
  • Use external OpenSSH

    • 描述:使用系统上已安装的外部 OpenSSH 版本。这意味着你需要在系统中已经安装了 OpenSSH,Git 将使用该版本进行 SSH 操作。
    • 适用情况:如果你已经有外部 OpenSSH 安装并希望使用它,或者需要使用特定版本的 OpenSSH,选择这个选项。这对于需要与系统上其他软件或配置兼容的用户尤其重要。

13、选择 Git 用于处理 HTTPS 连接的传输后台

也是默认第一个,不容易出现兼容问题

  • Use the OpenSSL library

    • 描述:使用 OpenSSL 库来处理 HTTPS 连接。OpenSSL 是一个流行的开源加密库,支持广泛的加密算法和功能。
    • 适用情况:选择这个选项可以提供更广泛的功能和配置选项,适合需要更多加密选项的用户。如果你希望使用 Git 的 OpenSSL 配置或者在一些特定的环境中,选择这个选项可能更合适。
  • Use the native Windows Secure Channel library

    • 描述:使用 Windows 本地的安全通道库(Schannel)来处理 HTTPS 连接。Schannel 是 Windows 操作系统内置的安全协议组件。
    • 适用情况:选择这个选项可以使 Git 使用 Windows 内建的加密库,这通常可以更好地与 Windows 系统集成。适合希望避免额外安装 OpenSSL 的用户,或是希望利用 Windows 原生的安全功能。

14、选择 Git 如何处理行结束符(line endings)
建议选择第一个,解决兼容问题的同时又保证书写风格

选项说明

  1. Checkout Windows-style, commit Unix-style line endings

    • 描述:在 Windows 上检出(checkout)文件时,将使用 Windows 风格的行结束符(CRLF),但在提交(commit)时,将转换为 Unix 风格的行结束符(LF)。
    • 适用情况:适合主要在 Windows 上开发,但希望在版本控制系统中保持 Unix 风格的行结束符。这可以帮助避免因行结束符不一致导致的问题。
  2. Checkout as-is, commit Unix-style line endings

    • 描述:检出(checkout)文件时保持文件的原始行结束符,不进行转换。提交(commit)时,将转换为 Unix 风格的行结束符(LF)。
    • 适用情况:适合在跨平台开发时,保持文件在检出时的原始状态,并统一提交时的行结束符为 Unix 风格。
  3. Checkout as-is, commit as-is

    • 描述:检出(checkout)和提交(commit)时都保持文件的原始行结束符,不进行转换。
    • 适用情况:适合在不需要转换行结束符的情况下,保持文件的原始状态。这对于开发环境中不关心行结束符一致性的项目可能更合适。

15、选择 Git Bash 使用的终端模拟器

建议默认第一个,支持更多功能还可以自定义

  • Use MinTTY (the default terminal of MSYS2)

    • 描述:MinTTY 是 MSYS2(一个用于 Windows 的开源工具集)默认的终端模拟器。它提供了一个功能丰富的终端窗口,支持丰富的功能,如拖放文件、调整窗口大小、字体和颜色设置等。
    • 适用情况:选择这个选项可以提供一个功能全面的终端体验,适合需要更高自定义性和额外功能的用户。MinTTY 通常具有更好的用户体验,并且支持更好的字体渲染和终端功能。
  • Use Windows' default console window

    • 描述:使用 Windows 的默认控制台窗口(如 CMD 或 PowerShell)。这种终端窗口与系统的其他控制台窗口一致。
    • 适用情况:选择这个选项将使 Git Bash 使用 Windows 自带的控制台窗口,这对于习惯使用 Windows 默认控制台的用户可能更为熟悉。它可能不会像 MinTTY 那样提供额外的功能和自定义选项,但与系统集成更好。

16、选择 Git 在执行 git pull 时的默认行为

这里建议选第一个,方便快捷,但我个人选择了第二个(整洁,线性)


  • Fast-forward or merge

    • 描述:当执行 git pull 时,如果远程分支的更改可以通过快进(fast-forward)合并到本地分支,Git 将执行快进合并。如果不能快进合并,则会进行标准的合并操作(merge),可能会产生一个合并提交(merge commit)。
    • 适用情况:适合希望在保持提交历史的同时,自动处理快进和合并的用户。这个选项提供了较大的灵活性,但可能在某些情况下产生额外的合并提交。
  • Rebase

    • 描述:当执行 git pull 时,Git 会将本地分支上的提交移动到远程分支的最新提交之上。这个过程称为 rebase。这样可以避免产生合并提交,保持提交历史的线性。
    • 适用情况:适合希望保持提交历史整洁、线性的用户。使用 rebase 可以使历史看起来更简单,但需要注意处理 rebase 过程中的冲突。
  • Only ever fast-forward

    • 描述:当执行 git pull 时,只有在远程分支的更改可以通过快进(fast-forward)合并到本地分支时,才会进行合并。如果远程更改不能快进合并,Git 将会拒绝拉取(pull)。
    • 适用情况:适合希望避免任何形式的合并提交,仅在可以快进合并的情况下更新本地分支。这个选项可以确保提交历史完全线性,但在某些情况下可能需要手动处理分支更新。

17、选择 Git 如何管理凭据(如用户名和密码)

建议选择第一个(自动管理和保存 Git 凭据,以便在访问 Git 仓库时无需反复输入凭据),安全性不错也便捷

  • Git Credential Manager

    • 描述:Git Credential Manager 是一个工具,它帮助你安全地存储和管理 Git 凭据。它会在你第一次输入凭据时将其保存在安全的凭据存储区中,之后自动填充这些凭据,以便你在后续的 Git 操作中无需再次输入。
    • 适用情况:适合希望简化凭据管理并提高安全性的用户。Git Credential Manager 支持多种凭据存储方式,如 Windows 凭据管理器或 macOS 钥匙串,并可以与不同的 Git 托管服务(如 GitHub、GitLab、Bitbucket)集成。
  • None

    • 描述:不使用任何凭据助手。这意味着你需要手动输入凭据,或者在每次访问受保护的 Git 仓库时使用其他方式管理凭据。
    • 适用情况:适合不需要自动凭据管理,或者希望自己手动处理凭据的用户。如果你使用 SSH 密钥而不是用户名和密码,可能会选择这个选项。

18、额外配置

这个按需求选择

  • Enable file system caching

    • 描述:启用文件系统缓存。这个选项可以提高 Git 操作的性能,特别是在处理大型仓库时。文件系统缓存通过存储文件系统操作的结果来减少重复的操作,从而加快后续的操作速度。
    • 适用情况:如果你处理的是大型项目,或希望提高 Git 操作的效率,建议启用此选项。它可以帮助加快操作速度,尤其是当你频繁进行文件读取或写入时。
  • Enable symbolic links

    • 描述:启用符号链接(symbolic links)的支持。符号链接是指向其他文件或目录的引用。如果你的项目使用了符号链接,启用此选项可以确保 Git 正确处理这些链接。
    • 适用情况:如果你的项目中包含符号链接,建议启用此选项。它将确保 Git 正确跟踪和管理这些链接。如果你的项目不使用符号链接,可以不启用此选项。

19、配置实验性选项(建议不勾选),点击install安装

Enable experimental support for pseudo consoles

  • 描述:启用对伪控制台(pseudo consoles)的实验性支持。伪控制台是一种虚拟的控制台或终端,允许在程序中模拟一个终端环境。这项功能通常用于提高在某些环境下的终端兼容性或支持更多的终端功能。
  • 适用情况:如果你使用的是需要伪控制台支持的特定工具或应用程序,或者你希望尝试最新的实验性功能以获得更好的终端兼容性,可以启用此选项。请注意,因为这是一项实验性功能,可能会存在不稳定或未知的问题。

安装成功(可以勾选第一个打开Git Bash),点击Finish完成

第二个为打开发行说明,类似文档

三、使用准备

粗糙的看下来,git的功能主要就是上传和下载,基于这两个主要功能拓展出以下功能

  • 版本管理:跟踪代码的每个版本,记录所有更改的历史,以便回溯或恢复。
  • 分支管理:允许开发者在不同的分支上进行并行开发,并在合适的时候将更改合并。
  • 冲突解决:在团队合作时,Git 可以帮助开发者解决代码合并时的冲突。
  • 代码审查:与远程平台(如 GitHub)结合,可以进行代码审查和协作开发。
  • 持续集成/持续部署:通过自动化工具触发构建和部署流程。

1、本地配置

这一步主要是为了辨别个人信息,在未来团队协作中你上传的代码会标注你个人的信息,如果出现问题好找你修改

①首先是全局个人信息

在配置之前先查看你是否配置过git

git config --global --list

其中主要看你配置中有没有设置用户名和用户邮箱(类似以下代码)

  • user.name=Your Name

  • user.email=your.email@example.com

如果没有则按照以下代码将全局的用户名和邮箱设置好

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

②设置一个本地库

这一步是项目必备的准备工作,你需要一个本地库来确定git以后拉取的资料保存在什么位置

例如:我后续想做一个图书管理系统,所以我创建了一个文件夹 " library-m-s " 

这个时候就先在命令窗口打开这个文件夹(命令窗口win+R输入cmd回车)

首先我们一般是先处于C盘盘符下所以我们要转到D盘

D:

然后我们通过命令转到你想创建本地库的位置

cd D:\ProgrammingFile\VScode\DynamicPage\library-m-s

使用git命令将这个文件夹转换为本地库(这个方法适合用于小型项目,如果项目比较大,那么建议创建一个本地库的文件夹然后再将这个文件夹用命令转化为本地库)

git init

接下来的常用操作命令集合部分将需要用到github这类远程仓库的协作,需要有一个远程的仓库才能使用部分命令 ; 
所以......建议创建一个仓库再返回本教程测试这些命令

四、常用git操作

1). 初始化仓库

  • git init:初始化一个新的 Git 仓库,上述准备过程中有详细操作

2). 克隆仓库

  • git clone <repository-url>:克隆远程仓库到本地。
  • <repository-url> 是远程仓库的 URL 地址,它可以是 HTTP/HTTPS、SSH、Git 协议等格式。

3). 检查状态

  • git status:查看工作目录和暂存区的状态。

4). 添加文件到暂存区

  • git add <file>:添加指定文件到暂存区。
  • git add .:添加所有更改到暂存区。

5). 提交更改

  • git commit -m "commit message":将暂存区的内容提交到本地仓库。
  • git commit -am "commit message":将所有已跟踪的文件(包括已修改的文件)直接提交。

6). 查看提交历史

  • git log:查看提交日志。
  • git log --oneline:以简洁格式查看提交历史。

7). 分支操作

  • git branch:查看本地分支列表。
  • git branch <branch-name>:创建新分支。
  • git checkout <branch-name>:切换到指定分支。
  • git checkout -b <branch-name>:创建并切换到新分支。
  • git branch -d <branch-name>:删除分支。

8). 合并分支

  • git merge <branch-name>:将指定分支合并到当前分支。

9). 查看远程仓库

  • git remote -v:查看远程仓库地址。
  • git remote add origin <repository-url>:添加远程仓库。

10). 推送更改到远程仓库

  • git push origin <branch-name>:将本地分支推送到远程仓库。
  • git push -u origin <branch-name>:推送分支并设置跟踪关系。

11). 拉取远程仓库的更改

  • git pull origin <branch-name>:从远程仓库拉取并合并更改。

12). 删除文件

  • git rm <file>:从工作目录和暂存区中删除文件。
  • git rm --cached <file>:只从暂存区中删除文件,但保留在工作目录中。

13). 撤销更改

  • git checkout -- <file>:撤销对某个文件的修改,将其恢复到上次提交的状态。
  • git reset HEAD <file>:将文件从暂存区中移除,但保留在工作目录中。

14). 重新设置提交历史

  • git reset --soft <commit>:重置到指定提交,保留更改在暂存区。
  • git reset --hard <commit>:重置到指定提交,丢弃工作目录中的更改。

15). 检查差异

  • git diff:查看工作目录和暂存区的差异。
  • git diff <branch-name>:查看当前分支与指定分支之间的差异。

16). 标签管理

  • git tag <tag-name>:为当前提交打标签。
  • git tag -a <tag-name> -m "message":创建带有注释的标签。
  • git push origin <tag-name>:将标签推送到远程仓库。

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

npc码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值