如何使用Git版本控制系统

Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。git最初只是作为一个可以被其他前端包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。实际上内核开发团队决定开始开发和使用git来作为内核开发的版本控制系统的时候,世界上开源社群的反对声音不少,最大的理由是git太艰涩难懂,从git的内部工作机制来说,的确是这样。但是随着开发的深入,git的正常使用都由一些友善的命令来执行,使git变得非常好用。现在,越来越多的著名项目采用git来管理项目开发,本文将介绍Git的用法,以便您快速学习。

Git基础

  • 首先,我们创建一个用于存储文件的文件夹,然后在该文件夹中初始化Git存储库:
mkdir testgit
cd testgit
git init
  • 为Git创建要跟踪的文件,然后将一些文本添加到文件中:
touch file.txt file2.txt file3.txt
echo "hello Linode" >> file.txt
  • 使用git status返回关于当前Git库的信息:
git status
On branch master
​
Initial commit
​
Untracked files:
(use "git add ..." to include in what will be committed)
​
file.txt
file2.txt
file3.txt
​
nothing added to commit but untracked files present (use "git add" to track)
  • 由于file.txt包含文本,您希望Git跟踪该文件在未来的任何更改。使用git add file.txt添加file.txt到文件的Git监视器列表。添加后输入git status以确认Git正在跟踪新文件。
git add file.txt
git status

这将返回到:

On branch master
​
Initial commit
​
Changes to be committed:
(use "git rm --cached ..." to unstage)
​
new file: file.txt
​
Untracked files:
(use "git add ..." to include in what will be committed)
​
file2.txt
file3.txt
  • 要提交对file.txt的更改到版本控制系统,请使用git commit。Git要求您编写提交消息,这个消息将帮助您记住您对文件所做的更改。在此示例中,使用-am选项提交所有已修改的文件,,并包含提交消息:
git commit -am "Added Hello Linode to file.txt"

Git将返回以下消息,确认您的新更改:

[master (root-commit) e8cc496] added new file
1 file changed, 1 insertion(+)
create mode 100644 file.txt
  • 使用git add -A跟踪目录中的其余文件,并使用以下消息提交它们:
git add -A
git status

返回:

On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
​
modified: file.txt
new file: file2.txt
new file: file3.txt
​
Now, commit the changes:
​
git commit -am "The end!"
​
[master 52a9240] The End
4 files changed, 1 insertion(+)
create mode 100644 file1.txt
create mode 100644 file2.txt
create mode 100644 file3.txt

注意 git add -Agit add .git add -u,都可以用于为提交暂存文件。 git add -A会将所有目录中的文件分级。git add .仅暂存新文件和修改过的文件,省略所有已删除的文件。git add -u仅分阶段修改和删除文件,省略所有新文件。

总结

您可以参考以下资源。学习更多GIt技巧

Git命令你学会了吗?当然,真正的项目复杂的多,赶紧去腾讯云开发者实验室进行试验吧!想要学习更多相关知识,请访问腾讯云云+社区


参考文献:《How to Use Git the Version Control System 》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

如何更精准的在 Github 上搜索开源库?你需要这些技巧!

正文共: 2468字 8图 预计阅读时间: 7分钟 一、前言 在日常工作中,我们并不推荐去重复造轮子,通常我们会去搜索一些稳定的第三方开源库来使用。而 Gith...

2096
来自专栏安恒信息

Linux/Unix中开源应用wget发现严重安全漏洞

在Linux和Unix系统中广泛使用的开源应用wget发现了一个严重安全漏洞,允许攻击者通过FTP创建任意文件和目录,甚至复写整个文件系统。该漏洞是Rapid ...

3455
来自专栏Java成神之路

Java程序员常用工具集

我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用...

1293
来自专栏编程坑太多

『高级篇』docker之了解kubernetes(31)

PS:(梳理概念)pod里面包括N个容器,service里面包括pod,Deployment可能包括service或者是pod。

1414
来自专栏腾讯DevOps

Git的艺术—分支管理

Git的开发者—— Linus Benedict Torvalds,22岁就创建了Linux系统,发展到2005年的时候,用了仅两周的时间写了一个分布式版本控制...

50010
来自专栏PhpZendo

Laravel 广播系统工作原理

今天,让我们深入研究下 Laravel 的广播系统。广播系统的目的是用于实现当服务端完成某种特定功能后向客户端推送消息的功能。本文我们将学习如何使用第三方 Pu...

5392
来自专栏ImportSource

消息队列可以有的样子

铺垫 无论是什么类型的消息队列,恐怕都离不开三个东东:读取端 、消息存储平台、写入端,无论你给这三者起了什么样子的名字。也就是写入、存储、读取。 写入端通常被叫...

4296
来自专栏架构师之路

100行代码,搞定http监控框架

集群信息管理,员工信息管理,告警策略管理,几篇前戏已经铺垫足够,今天,分享如何用100行代码搞定一个可扩展,通用的http监控框架。 一、常见的http监控玩法...

4256
来自专栏上善若水

S006SELinux(SEAndroid)是个什么呀

SEAndroid 是一套安全机制,实现的主要目的是为了是Android系统更安全。 SELinux是被设计为一个灵活的可配置的MAC机制。 SEAndro...

1454
来自专栏企鹅号快讯

如何更精准的在 Github 上搜索开源库?你需要这些技巧!

正文共: 2468字 8图 预计阅读时间: 7分钟 一、前言 在日常工作中,我们并不推荐去重复造轮子,通常我们会去搜索一些稳定的第三方开源库来使用。而 Gith...

4227

扫码关注云+社区

领取腾讯云代金券