Git是如何工作的
Git是一个分布式版本控制工具,可以方便地跟踪代码随时间的变化。Git使得跟踪代码库的变化和与他人协作变得简单。它是由Linus Torvalds于2005年为**Linux内核**的开发而编写的,其他内核开发人员也对其最初的开发做出了贡献。
它使得我们能够通过独立地在代码库的不同部分上工作来跟踪代码的变化并与他人合作。当我们说它是分布式的时候,我们可能认为代码在两个地方,远程服务器和本地,但事实更加复杂。
你可以从**这个位置**下载并安装它。
Git在本地有三个存储:工作目录、暂存区、本地仓库。
- 工作目录 这是你工作和文件存放的地方(”未跟踪”)。这里的所有文件更改都会被标记;如果没有保存到GIT中,你将丢失它们。原因是GIT不知道这些文件的存在。
- 暂存区 当你使用
git add
命令保存你的更改时,GIT将开始跟踪并保存你的更改和文件。这些更改存储在.git
目录中。然后,文件从工作目录移动到暂存区。但是,如果你更改了这些文件,GIT将不会知道它们的变化;你需要告诉GIT注意到这些更改。 - 本地仓库 这是一切都被保存(提交)在
.git
目录中的地方。所以,当你想将文件从暂存区移到本地仓库时,你可以使用git commit
命令。完成后,你的暂存区将为空。如果你想查看本地仓库中有什么,请尝试git log
命令。
基本Git命令
一些每个软件开发人员都需要了解的基本Git命令包括:
- git init → 在目录中创建一个新的git仓库
- git branch → 创建一个新的本地分支
- git checkout → 切换分支
- git add → 将一个新文件添加到暂存区
- git commit → 将已暂存的更改添加到本地仓库
- git pull → 从远程仓库拉取代码到本地目录
- git push → 推送本地仓库的更改到远程仓库
- git status → 显示被跟踪的文件(以及未跟踪的文件)
- git diff → 查看工作目录和暂存区之间实际代码的区别
如何学习Git
虽然我发现开发人员对GIT的简单流程,比如分支、提交、推送和获取等操作都非常熟悉,但我通常发现他们对**(高级)GIT概念的理解**以及如何应对作为开发人员在日常工作流程中可能发生的不同情况并不理想。
以下是我可以推荐的一些学习资源:
- Learn GIT concepts, not commands article:一个互动的Git教程,旨在教你它是如何工作的,而不仅仅是要执行哪些命令。
- Git from the inside-out article:本文重点介绍了支撑Git的图形结构以及这个图形的属性如何决定Git的行为。如果你想了解Git内部是如何运作的,请阅读此文。
- Oh Shit, Git?!:这是一篇很棒的文章,解释了如何处理Git中的各种棘手情况。
- Pro Git book:由Scott Chacon和Ben Straub编写(免费) 本书涵盖了版本控制基础,Git基础,分支等许多主题。Pro Git全面地介绍了Git的所有基本内容,即使对于高级读者也是如此。
- Learn Git Branching:提供一种可视化和互动的学习Git的方式。在这里,你可以接受不同级别的挑战,并给出逐步演示GIT功能的示例。
- Visualizing GIT:这个网站会对你的GIT命令进行可视化。如果你想以图形化的方式看到正在发生的事情,这非常好。还可以看一看**这个**。
- Git Command Explorer:这个网站可以让你找到正确的GIT命令,而无需在网上搜索。
- Git Purr:用猫解释Git —— 以有趣(或宁静)的方式教授Git。
- Git Immersion:这是一个引导性的旅程,通过实验室教授Git的基础知识。该网站提供了50多个实验室。
- Advanced Git book
Git工具
除了Git的概念之外,还有一些有价值的工具可以使用,如果你不喜欢从命令行工作,如:
- GitKraken
- SourceTree by Atlassian(Jira、Confluence和BitBucket的创建者)
- TortoiseGit,集成到Windows资源管理器中
- SmartGit for Windows
- Git Extensions,一个独立的UI工具,用于管理Git仓库
- Beyond Compare,文件和文件夹比较工具。
- Tower Git客户端
- Mac上的GitUp
- Mac上的GitBox
而所有重要的新代码编辑器,如IntelliJ Idea、Visual Studio Code等等,都集成了Git支持,如果你在使用GitHub,还有**GitHub桌面客户端**。
奖励:Git速查表
这是一个可以下载的Git速查表,你可以在日常工作中下载并使用。
内容由GeekAI网页翻译服务自动翻译完成。 原文地址:https://newsletter.techworld-with-milan.com/p/how-to-learn-git