10 种高级 Git 技术 - KDnuggets

10 项高级 Git 技术 – KDnuggets

源节点: 3083811

10 种高级 Git 技术
图片来自作者
 

有没有想过在使用 Git 时如何才能在经理面前看起来像个专业人士?在这篇文章中,我们将学习 10 种高级 Git 技术和快捷方式,它们将使您更有效地进行版本控制、维护和共享代码。

您可能已经了解 Git 提交、推送、拉取和分支的基础知识。但还有许多鲜为人知的命令和功能可以提高您的技能。读完本文后,您将掌握一些巧妙的技巧,让您的 Git 熟练程度给同事留下深刻的印象。

您已经以这种方式添加并提交了文件多次,但是如果我告诉您可以使用“-am”标志在一行中完成呢? 

$ git add .
$ git commit -m "new project"

 

请尝试执行此操作,它将添加文件更改并使用该消息创建提交。 

$ git commit -am "new project"

 

[master 17d7675] new project
4 files changed, 2 insertions(+), 1 deletion(-)

 

您可以使用“–amend”标志重命名当前提交消息并写入新消息。这将帮助您处理意外消息。

$ git commit --amend -m "Love"

 

[master 7b7f891] Love
Date: Mon Jan 22 17:57:58 2024 +0500
4 files changed, 2 insertions(+), 1 deletion(-)

 

您可以在将当前提交推送到远程存储库之前对其进行其他更改。为此,您需要添加文件更改,然后使用“–amend”标志提交。要保留以前的提交消息,只需使用“–no-edit”标志即可。

$ git add . 
$ git commit --amend --no-edit

 

[master f425059] Love
Date: Mon Jan 22 17:57:58 2024 +0500
6 files changed, 2 insertions(+), 34 deletions(-)

如果您想推送本地提交并覆盖远程历史记录而不处理解决问题,则可以使用“--force”标志。但是,请务必注意,不建议使用强制标志,并且仅应在您完全确定自己在做什么时才使用。请记住,使用强制标志将重写远程历史记录。

$ git push origin master --force

 

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 357 bytes | 357.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/kingabzpro/VSCode-DataCamp.git
8f184d5..f425059  master -> master

要撤消 Git 中的提交,可以使用“revert”命令。但是,此命令不会删除任何提交。相反,它会创建一个新的提交来撤消原始提交所做的更改。

我们将使用带有“–oneline”标志的“log”以较短的形式查看提交历史记录。 

$ git log --oneline

 

f425059 (HEAD -> master, origin/master) Love
8f184d5 first commit

 

要恢复到以前的提交,我们使用“git revert”命令,后跟提交 ID。这将创建一个新的提交,其中包含先前提交的更改。

$ git revert 8f184d5

您想提高 GitHub 上的工作效率吗?借助 GitHub Code Spaces,您现在可以直接在浏览器中编辑和运行代码。 

要访问此功能,只需导航到您最喜欢的存储库,按键盘上的句点键(“.”),它就会将您重定向到 VSCode UI。

 

10 种高级 Git 技术
图片来自作者
 

您可以更改代码并将其推送到远程存储库。但是,如果您想在终端中运行代码,则需要在云端运行Codespace。免费版本提供了在浏览器中运行 Python 代码的绝佳选择。那不是很棒吗?我今天才知道这件事。

 

10 种高级 Git 技术
图片来自作者

在处理项目时,您可以将文件添加到暂存区域,然后提交它们以保存当前进度。但是,还有另一种方法可以使用“stash”命令轻松保存您的工作。当您使用“stash”时,您可以保存当前进度,而无需将其添加到暂存区域或提交。这使您可以保存进度并在需要时恢复它。

我们将通过提供名称并将其隐藏来保存当前进度。 

$ git stash save new-idea

 

Saved working directory and index state On master: new-idea

 

您可以查看您的存储列表并记下相应的索引以检索它。

$ git stash list

 

stash@{0}: On master: new-idea

 

我们存储的“新想法”保存在索引 0 处。要检索它,请使用以下命令:

$ git stash apply 0

 

On branch master
Your branch is up to date with 'origin/master'.

您可以选择将默认分支名称重命名为更合适的名称。在这种情况下,我们将“master”重命名为“main”。 

$ git branch -M main

 

10 种高级 Git 技术
 

您可以使用以下命令验证更改: 

$ git status

 

On branch main
Your branch is up to date with 'origin/master'.

如果您想查看当前存储库中所有提交的详细历史记录,可以使用“git log”命令。但是,输出可能难以阅读。为了使其更具可读性,您可以使用“graph”、“decorate”和“oneline”标志。这将显示多个分支中所做的更改以及它们如何合并。

$ git log --graph --decorate --oneline

 

10 种高级 Git 技术

有好几次,我切换到了一个新的分支,却忘记了之前的分支的名称。因此,我必须使用“gitbranch-a”命令来查看分支名称列表。但是,有一种更简单的方法可以通过在 `git checkout` 命令后面使用破折号“-”返回到原始分支。

我们将首先创建新的 Git 分支“neo”。

$ git branch neo

 

我们将切换到“neo”分支。

$ git checkout neo

 

Switched to branch 'neo'

 

要返回到原始分支,我们将使用以下命令:

$ git checkout -

 

Switched to branch 'main'

我们已经了解了如何覆盖远程存储库。让我们学习如何使用远程存储库覆盖本地存储库。

我们将使用“fetch”命令从远程存储库获取最新更改。 

$ git fetch origin

 

然后,我们将使用带有“hard”标志的“reset”命令来覆盖远程版本的任何本地更改。请注意,这将永久放弃任何本地更改。

$ git reset --hard origin/master

 

HEAD is now at f425059 Love

 

如果仍有未跟踪的文件,可以使用以下命令将其删除:

$ git clean -df

看了一篇文章后受到启发写了这篇文章 YouTube视频 由火船。我很钦佩作者能够用简单的方式解释复杂的主题。通过遵循他的方法,我了解了很多关于 Git 的特性。

在本文中,我们介绍了高级 Git 技术,这些技术对于从事协作数据项目的数据科学家和软件工程师至关重要。了解这些技术可以帮助您避免事故并更快地解决问题。

我希望您觉得这个博客有用。如果您想阅读更多包含有关数据科学领域常用工具的字节大小信息的文章,请告诉我。
 
 

阿比德·阿里·阿万 (@1abidaliawan) 是一名经过认证的数据科学家专业人士,他热爱构建机器学习模型。 目前,他专注于内容创建和撰写有关机器学习和数据科学技术的技术博客。 Abid 拥有技术管理硕士学位和电信工程学士学位。 他的愿景是使用图形神经网络为患有精神疾病的学生构建一个人工智能产品。

时间戳记:

更多来自 掘金队