一文带你吃透Git常用命令与使用场景

一文带你吃透Git常用命令与使用场景一 Git 初印象在软件开发的广袤天地里 Git 堪称一款极为重要的工具 它是分布式版本控制系统的杰出代表 简单来说 Git 能够精准记录你对代码所做的每一次更改 让你随时回溯到过往任意一个版本 就如同拥有一台时光机 穿梭于代码的历史长河之

大家好,欢迎来到IT知识分享网。

一、Git 初印象

一文带你吃透Git常用命令与使用场景

在软件开发的广袤天地里,Git 堪称一款极为重要的工具,它是分布式版本控制系统的杰出代表。简单来说,Git 能够精准记录你对代码所做的每一次更改,让你随时回溯到过往任意一个版本,就如同拥有一台时光机,穿梭于代码的历史长河之中。

想象一下,你正精心创作一部小说,在创作过程中,不断地修改情节、调整语句。倘若没有一个有效的记录方式,当你突然想要回到之前某个满意的章节,重新审视或者继续拓展时,将会无比棘手。Git 之于代码,就如同精心的版本记录之于小说创作,它为开发者提供了强大的代码管理能力。

在多人协作开发的场景中,Git 的重要性更是不言而喻。就好比一场大型的交响乐演出,每个乐手都各司其职,演奏着不同的旋律。Git 能够确保每个开发者的代码改动都能有条不紊地融合在一起,避免冲突的发生,或者在冲突出现时,提供有效的解决办法,让整个开发团队如同默契十足的乐团,共同奏响和谐的代码乐章。

如今,几乎在所有的软件开发项目中,Git 都扮演着不可或缺的角色。无论是小型的个人项目,还是大型的企业级项目,都离不开 Git 的助力。如果你渴望成为一名优秀的开发者,那么掌握 Git 这门技能,无疑是你踏上成功之路的关键一步。接下来,就让我们一同深入探索 Git 的常用命令及其丰富多样的使用场景 。

二、安装与配置

一文带你吃透Git常用命令与使用场景

2.1 安装 Git

Git 的安装步骤会因操作系统的不同而略有差异,下面为大家详细介绍在 Windows、Mac OS 和 Linux 系统中安装 Git 的方法。

  • Windows 系统:首先,访问 Git 官方网站(https://git-scm.com/downloads ),在官网页面中,系统会自动识别您使用的是 Windows 系统,并提供对应的下载链接,点击下载名为 “Git-xx.xx.xx-64-bit.exe”(xx.xx.xx 为版本号)的安装程序。下载完成后,双击该安装程序,进入安装向导界面。在安装过程中,大部分选项保持默认设置即可,您只需按照向导提示,依次点击 “Next” 按钮。例如,在选择安装路径时,如果您没有特殊需求,可使用默认路径;在选择组件时,默认勾选的组件通常能满足大多数用户的需求。安装完成后,在任意文件夹中点击鼠标右键,若菜单中出现 “Git Bash Here” 和 “Git GUI Here” 选项,这就表明 Git 已经成功安装在您的 Windows 系统中 。
  • Mac OS 系统:Mac 系统安装 Git 也较为简便。同样前往 Git 官方网站,网站会自动匹配 Mac 系统的下载链接,点击下载后缀为 “.dmg” 的文件。下载完毕后,双击该文件,将弹出一个包含 Git 安装包的窗口,再将 Git 安装包拖动到 “Applications” 文件夹中,即可完成安装。安装完成后,打开 “终端” 应用程序,输入 “git –version” 命令,如果显示出 Git 的版本号,那就说明 Git 已经成功安装在您的 Mac 系统上了 。
  • Linux 系统:Linux 系统由于其开源特性,许多发行版都默认预装了 Git。您可以打开终端,输入 “git –version” 命令来检查系统是否已经安装了 Git。如果系统提示 “command not found”,则表示尚未安装。以 Ubuntu 系统为例,在终端中输入 “sudo apt update” 命令,更新软件包列表,然后再输入 “sudo apt install git” 命令,系统将自动下载并安装 Git。对于 CentOS 系统,在终端中输入 “sudo yum install git” 命令,按照提示进行操作,即可完成 Git 的安装 。安装完成后,同样通过输入 “git –version” 命令来验证安装是否成功。

2.2 配置用户信息

在成功安装 Git 之后,紧接着需要配置您的用户名和邮箱信息。这一步至关重要,因为在进行代码提交时,这些信息将被记录在每一次的提交记录中,用于明确代码的提交者身份,方便团队成员之间追溯代码的修改历史和责任人。

配置用户名和邮箱的方法非常简单,您只需在 Git Bash(Windows 系统)或终端(Mac OS 和 Linux 系统)中输入相应的命令即可。

配置全局用户名,在终端中输入:

git config --global user.name "你的用户名"

将 “你的用户名” 替换为您实际想要使用的用户名,例如 “JohnDoe” 。

配置全局邮箱,在终端中输入:

git config --global user.email "你的邮箱地址"

将 “你的邮箱地址” 替换为您常用的邮箱,例如 “” 。

通过使用 “–global” 参数,这两个配置将应用到您系统中的所有 Git 仓库。这样,无论您在哪个项目中进行代码提交,提交记录中都会准确显示您配置的用户名和邮箱信息 。

倘若您希望针对特定的仓库设置不同的用户名和邮箱,可以在该仓库的根目录下打开终端,输入不带 “–global” 参数的命令,例如:

git config user.name "特定仓库用户名"

git config user.email “特定仓库邮箱地址”

这些配置信息仅对当前所在的仓库生效,不会影响其他仓库的配置 。

完成配置后,您可以通过以下命令来查看配置是否生效:

git config --global user.name

git config –global user.email

如果需要修改已配置的用户名或邮箱,只需再次执行相应的配置命令,新的配置信息将覆盖旧的信息 。

三、常用命令及场景

一文带你吃透Git常用命令与使用场景

3.1 初始化仓库

当你开启一个全新的项目,首要任务便是在项目目录中初始化一个 Git 仓库。这就如同为你的项目打造一个专属的 “代码保险箱”,用于精心保管代码的所有历史版本。

执行git init命令,即可轻松创建一个新的 Git 仓库。该命令会在当前目录下默默生成一个名为.git的隐藏文件夹,这个神秘的文件夹宛如仓库的 “核心大脑”,存储着版本控制所需的全部元数据和对象 。

假设你正在着手一个名为 “my – project” 的项目,首先通过命令行进入该项目的目录:

mkdir my - project

cd my – project

接着,执行git init命令,初始化 Git 仓库:

git init

执行完毕后,你可以使用ls -a命令查看,便会发现多了一个名为.git的隐藏文件夹 。此时,你的项目已经成功配备了一个基本的 Git 仓库,随时准备记录你的代码变更 。

3.2 克隆远程仓库

倘若你期望获取远程服务器上已有的项目代码,git clone命令便是你的得力助手。这个命令能够将远程仓库的完整代码及其丰富的历史记录一股脑地复制到本地,让你能够在本地环境中随心所欲地进行开发和研究。

git clone的使用方法相当简单,只需在命令后紧跟远程仓库的 URL 即可。例如,若要克隆 GitHub 上的一个名为 “example – repo” 的仓库,其 URL 为 “
https://github.com/username/example – repo.git”,那么执行以下命令:

git clone https://github.com/username/example - repo.git

Git 会迅速开始工作,将远程仓库的所有文件和目录精准无误地下载到本地,并自动建立与远程仓库的连接,方便后续的同步和更新操作 。

3.3 文件操作

在日常的开发进程中,你会频繁对文件进行各式各样的操作,诸如添加、修改、删除和移动文件等。在 Git 的世界里,有一系列专门的命令来高效管理这些操作。

  • 添加文件到暂存区:当你在本地工作区对文件进行了修改,若希望将这些修改纳入本次提交的范围,就需要使用git add命令,将文件添加到暂存区。暂存区恰似一个临时的 “待提交文件中转站”,用于存放即将被提交到本地仓库的文件修改 。

例如,你修改了一个名为 “main.c” 的文件,想要将其添加到暂存区,可以执行:

git add main.c

倘若你一次性修改了多个文件,或者希望将当前目录下的所有修改文件都添加到暂存区,可使用以下命令:

git add.

这里的 “.” 代表当前目录下的所有文件 。

  • 提交暂存区的更改:在将需要提交的文件成功添加到暂存区后,下一步便是使用git commit命令,将暂存区的更改正式提交到本地仓库。每次提交都应当附上清晰、准确的提交信息,以简要描述本次提交所做的更改,这对于后续追溯代码的修改历史至关重要 。

执行提交命令的格式如下:

git commit -m "提交信息"

其中,“提交信息” 需替换为你对本次提交内容的具体描述,例如 “修复了登录功能的一个漏洞”“添加了用户注册模块的代码” 等 。这样,当其他团队成员或未来的你查看提交历史时,便能迅速了解本次提交的核心内容 。

  • 删除文件:若你不再需要某个文件,并打算从项目中彻底移除它,同时将这个删除操作记录到 Git 的版本历史中,可以使用git rm命令 。

假设要删除名为 “old_file.txt” 的文件,执行以下命令:

git rm old_file.txt

执行该命令后,文件不仅会从工作区中被删除,同时这个删除操作也会被记录到暂存区,等待你使用git commit命令将其提交到本地仓库 。

倘若你只是希望停止跟踪某个文件,但并不想将其从工作区中删除,可以使用git rm –cached命令 。例如,对于一个已经被 Git 跟踪的文件 “temp_file.txt”,若你不想再让 Git 跟踪它,但仍想保留在工作区中,可执行:

git rm --cached temp_file.txt
  • 移动或重命名文件:在项目开发过程中,有时需要对文件进行移动或重命名操作。在 Git 中,使用git mv命令能够便捷地完成这一任务,并且该命令会自动将文件的移动或重命名操作记录到暂存区 。

例如,将文件 “src_file.txt” 重命名为 “dst_file.txt”,执行以下命令:

git mv src_file.txt dst_file.txt

这一操作等同于先在操作系统中手动重命名文件,然后使用git add命令将重命名后的文件添加到暂存区 。随后,通过git commit命令提交更改,即可将文件的重命名操作永久记录到 Git 仓库中 。

3.4 分支管理

分支管理是 Git 最为强大且重要的功能之一,它允许你在不影响主代码的前提下,并行开展多个开发任务,如开发新功能、修复漏洞等。通过合理运用分支,团队成员之间能够高效协作,避免相互干扰,极大地提升开发效率 。

  • 创建分支:使用git branch命令可以创建新的分支。例如,当你要为一个新功能的开发创建一个分支,命名为 “feature – new – functionality”,执行以下命令:
git branch feature - new - functionality

此时,你仍处于当前所在的分支(通常为master分支或其他默认分支),新创建的分支与当前分支在创建时的代码状态完全相同 。

  • 切换分支:创建分支后,若要切换到刚创建的分支进行开发工作,需使用git checkout命令 。例如,切换到名为 “feature – new – functionality” 的分支,执行:
git checkout feature - new - functionality

执行该命令后,你的工作目录会立即切换到该分支的代码状态,你所做的任何修改都将只影响这个分支,而不会对其他分支产生干扰 。

为了更加便捷地创建并同时切换到新分支,还可以使用git checkout -b命令。例如,一步到位创建并切换到名为 “bug – fix – branch” 的分支,执行:

git checkout -b bug - fix - branch
  • 合并分支:当你在某个分支上完成了开发任务,如新功能开发完毕或漏洞修复完成,通常需要将该分支合并到主分支(如master分支)或其他目标分支上 。使用git merge命令即可实现分支的合并 。

假设你在 “feature – new – functionality” 分支上完成了新功能的开发,现在要将其合并到master分支。首先,切换到master分支:

git checkout master

然后,执行合并命令:

git merge feature - new - functionality

Git 会自动将 “feature – new – functionality” 分支的更改融入到master分支中。倘若在合并过程中出现冲突(即两个分支对同一部分代码进行了不同的修改),Git 会提示你手动解决冲突,确保合并的顺利进行 。

3.5 查看状态与日志

在开发过程中,随时了解当前项目的状态以及代码的历史变更情况是非常重要的。Git 提供了git status和git log命令,帮助你轻松获取这些关键信息 。

  • 查看仓库状态:git status命令用于查看当前 Git 仓库的状态,包括哪些文件被修改、哪些文件已被添加到暂存区、哪些文件尚未被跟踪等。执行该命令后,你会得到一个清晰的状态报告,让你对项目的当前情况一目了然 。

在项目目录下执行git status,输出结果可能类似如下:

On branch master

Your branch is up – to – date with ‘origin/master’.

Changes not staged for commit:

(use “git add <file>…” to update what will be committed)

(use “git checkout — <file>…” to discard changes in working directory)

modified: main.c

Untracked files:

(use “git add <file>…” to include in what will be committed)

new_file.txt

no changes added to commit (use “git add” and/or “git commit -a”)

上述输出表明,当前位于master分支,该分支与远程的origin/master分支保持同步。在工作区中,main.c文件被修改但尚未添加到暂存区,同时存在一个未被 Git 跟踪的新文件 “new_file.txt” 。

  • 查看提交日志:git log命令用于查看项目的提交历史记录,包括每次提交的作者、提交时间、提交信息以及提交的具体内容(通过-p选项可以查看详细的代码更改)。通过查看提交日志,你可以清晰地追溯代码的演变过程,了解每个版本的变更情况 。

执行git log命令,输出结果可能如下:

commit abcdef

Author: John Doe <>

Date: Mon Aug 1 10:00:00 2023 +0800

Added new feature to the application

commit abcdef

Author: Jane Smith <>

Date: Sun Jul 31 15:30:00 2023 +0800

Fixed a bug in the login functionality

上述输出展示了两次提交记录,包括提交的哈希值、作者、日期以及提交信息 。你可以通过这些信息快速了解项目的开发历程和每个阶段的主要工作 。

为了更简洁地查看提交日志,还可以使用git log –pretty=oneline命令,该命令会将每条提交记录以一行的形式展示,方便快速浏览 。

3.6 远程协作

在多人协作开发项目中,与远程仓库进行高效的交互至关重要。Git 提供了一系列命令,如git push、git pull和git fetch,让你能够轻松地与远程仓库同步代码,分享自己的工作成果,并获取其他团队成员的最新更改 。

  • 推送本地更改到远程仓库:当你在本地完成了一系列的开发工作,并将更改提交到本地仓库后,若希望将这些更改同步到远程仓库,以便其他团队成员能够获取和使用,就需要使用git push命令 。

假设你要将本地master分支的更改推送到远程仓库的master分支(通常远程仓库的默认别名是 “origin”),执行以下命令:

git push origin master

执行该命令后,Git 会将本地master分支上的所有新提交发送到远程仓库的master分支。如果远程仓库的master分支与你的本地分支存在差异(例如其他团队成员已经推送了新的更改),可能会提示你先进行git pull操作,以避免冲突 。

  • 从远程仓库拉取最新更改:在开发过程中,为了确保你的本地代码始终与远程仓库保持同步,需要定期从远程仓库拉取其他团队成员推送的最新更改。使用git pull命令可以实现这一目的,它会自动从远程仓库获取最新的代码,并将其合并到你的本地分支中 。

例如,要从远程仓库的master分支拉取最新更改到本地的master分支,执行:

git pull origin master

git pull命令实际上相当于先执行git fetch命令从远程仓库获取最新的代码,然后再执行git merge命令将获取到的代码合并到本地分支 。

  • 获取远程仓库的最新代码:git fetch命令用于从远程仓库获取最新的代码,但不会自动将其合并到本地分支。这意味着你可以在获取远程代码后,先查看差异,再决定是否进行合并操作,从而更好地控制代码的集成过程 。

例如,执行git fetch origin命令,会从远程仓库 “origin” 获取所有分支的最新更改,但这些更改不会立即应用到你的本地分支 。你可以通过git log -p origin/master..master命令查看远程master分支与本地master分支的差异,然后再决定是否使用git merge origin/master命令进行合并 。

四、实战演练

一文带你吃透Git常用命令与使用场景

为了让大家更加清晰地理解 Git 命令的实际运用,我们来模拟一个简单的项目开发流程。假设我们正在开发一个名为 “my – awesome – project” 的 Web 应用程序。

首先,在本地创建一个新目录,并初始化 Git 仓库:

mkdir my - awesome - project

cd my – awesome – project

git init

接着,创建一个简单的 HTML 文件 “index.html”,并添加一些初始内容:

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<meta name=”viewport” content=”width=device-width, initial – scale = 1.0″>

<title>My Awesome Project</title>

</head>

<body>

<h1>Welcome to My Awesome Project!</h1>

</body>

</html>

将 “index.html” 文件添加到暂存区并提交:

git add index.html

git commit -m “Initial commit: added index.html”

此时,我们发现需要添加一个新功能,即在页面中显示当前日期。为了不影响主分支的稳定性,我们创建一个新的功能分支 “feature – add – date”:

git checkout -b feature - add - date

在 “index.html” 文件中添加显示日期的 JavaScript 代码:

<!DOCTYPE html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<meta name=”viewport” content=”width=device-width, initial – scale = 1.0″>

<title>My Awesome Project</title>

</head>

<body>

<h1>Welcome to My Awesome Project!</h1>

<p id=”date – display”></p>

<script>

const dateDisplay = document.getElementById(‘date – display’);

const currentDate = new Date();

dateDisplay.textContent = ‘Today is’+ currentDate.toDateString();

</script>

</body>

</html>

将修改后的文件添加到暂存区并提交:

git add index.html

git commit -m “Added code to display current date”

在功能分支上完成开发后,切换回主分支,并将功能分支合并到主分支:

git checkout master

git merge feature – add – date

假设在合并过程中,主分支也有了一些其他的修改,导致出现了冲突。我们需要手动解决冲突。打开 “index.html” 文件,Git 会用特殊的标记指示冲突的部分:

<<<<<<< HEAD

<h1>Welcome to My Awesome Project!</h1>

=======

<h1>Welcome to the New and Improved My Awesome Project!</h1>

>>>>>>> feature – add – date

我们根据实际情况决定保留哪部分内容,或者进行适当的调整。例如,我们可以将标题修改为:

 <h1>Welcome to the New and Improved My Awesome Project! - Today is <span id="date - display"></span></h1>

解决冲突后,将文件重新添加到暂存区并提交:

git add index.html

git commit -m “Resolved merge conflict and merged feature – add – date branch”

最后,假设我们的项目已经部署到了远程服务器,我们需要将本地的最新更改推送到远程仓库:

git remote add origin https://github.com/your - username/my - awesome - project.git

git push -u origin master

通过这个实战演练,我们可以看到在一个完整的项目开发过程中,如何灵活运用 Git 的各种命令来管理代码版本、进行分支开发以及解决合并冲突等问题 。

五、总结与拓展

一文带你吃透Git常用命令与使用场景

通过本文的详细阐述,我们对 Git 这款强大的分布式版本控制系统有了较为全面的认识,深入了解了诸多常用 Git 命令及其丰富的使用场景。从最初的安装配置,到初始化仓库、克隆远程仓库,再到对文件的增删改查、分支管理、查看状态与日志,以及远程协作等各个环节,Git 都提供了相应的高效命令,为我们的软件开发工作提供了坚实的保障 。

在实际项目开发中,灵活运用这些 Git 命令,能够极大地提升我们的工作效率,有效减少代码管理的复杂性,让团队协作更加顺畅。然而,Git 的功能远不止于此,它还拥有许多高级特性和用法等待着我们去深入探索 。

为了进一步提升 Git 技能,大家可以通过阅读官方文档,深入学习 Git 的底层原理和高级功能,如变基操作、标签管理等;还可以利用一些在线学习资源,如 Interactive Guide to Git Branching,通过有趣的互动练习,加深对 Git 命令的理解和运用能力;同时,积极参与开源项目也是一个绝佳的学习途径,在实际的协作开发中,积累经验,学习他人优秀的代码管理方式 。

希望大家在今后的开发旅程中,能够熟练驾驭 Git 这一强大工具,为项目的成功贡献自己的力量。如果你在学习和使用 Git 的过程中有任何心得体会或疑问,欢迎在评论区留言分享,让我们一起共同进步 。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/168540.html

(0)
上一篇 2025-01-25 09:26
下一篇 2025-01-25 10:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信