Python的核心知识点整理大全66(已完结撒花)

目录

D.3 忽略文件

.gitignore

注意

D.4 初始化仓库

D.5 检查状态

D.6 将文件加入到仓库中

D.7 执行提交

D.8 查看提交历史

D.9 第二次提交

hello_world.py

D.10 撤销修改

hello_world.py

注意

D.11 检出以前的提交

往期快速传送门👆(在文章最后):

感谢大家的支持!欢迎订阅收藏!专栏将持续更新!


D.3 忽略文件

扩展名为.pyc的文件是根据.py文件自动生成的,因此我们无需让Git跟踪它们。这些文件存 储在目录__pycache__中。为让Git忽略这个目录,创建一个名为.gitignore的特殊文件(这个文件 名以句点打头,且没有扩展名),并在其中添加下面一行内容:

.gitignore
__pycache__/ 

这让Git忽略目录__pycache__中的所有文件。使用文件.gitignore可避免项目混乱,开发起来 更容易。


注意

如果你使用的是Python 2.7,请将这行内容改为*.pyc。Python 2.7不会创建目录 __pycache__,它将每个.pyc文件都存储在相应.py文件所在的目录中。其中的星号让Git 忽略所有扩展名为.pyc的文件


你可能需要修改文本编辑器的设置,使其显示隐藏的文件,这样才能使用它来打开文 件.gitignore。有些编辑器被设置成忽略名称以句点打头的文件。

D.4 初始化仓库

你创建了一个目录,其中包含一个Python文件和一个.gitignore文件,可以初始化一个Git仓库 了。为此,打开一个终端窗口,切换到文件夹git_practice,并执行如下命令:

git_practice$ git init
Initialized empty Git repository in git_practice/.git/
git_practice$ 

输出表明Git在git_practice中初始化了一个空仓库。仓库是程序中被Git主动跟踪的一组文件。 Git用来管理仓库的文件都存储在隐藏的.git/中,你根本不需要与这个目录打交道,但千万不要删 除这个目录,否则将丢弃项目的所有历史记录。

D.5 检查状态

执行其他操作前,先来看一下项目的状态

git_practice$ git status
1 # On branch master
#
# Initial commit
#
2 # Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# hello_world.py
#
3 nothing added to commit but untracked files present (use "git add" to track)
git_practice$ 

在Git中,分支是项目的一个版本。从这里的输出可知,我们位于分支master上(见1)。你 每次查看项目的状态时,输出都将指出你位于分支master上。接下来的输出表明,我们将进行初 始提交。提交是项目在特定时间点的快照。 Git指出了项目中未被跟踪的文件(见2),因为我们还没有告诉它要跟踪哪些文件。接下来, 我们被告知没有将任何东西添加到当前提交中,但我们可能需要将未跟踪的文件加入到仓库中 (见3)。

D.6 将文件加入到仓库中

下面将这两个文件加入到仓库中,并再次检查状态:

1 git_practice$ git add .
2 git_practice$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
3 # new file: .gitignore
# new file: hello_world.py
#
git_practice$

命令git add .将项目中未被跟踪的所有文件都加入到仓库中(见1)。它不提交这些文件, 而只是让Git开始关注它们。现在我们检查项目的状态时,发现Git找出了需要提交的一些修改(见 2)。标签new file意味着这些文件是新添加到仓库中的(见3)。

D.7 执行提交

下面来执行第一次提交:

1 git_practice$ git commit -m "Started project."
2 [master (root-commit) c03d2a3] Started project.
3 2 files changed, 1 insertion(+)create mode 100644 .gitignorecreate mode 100644 hello_world.py
4 git_practice$ git status
# On branch master
nothing to commit, working directory clean
git_practice$ 

我们执行命令git commit -m "message"(见1)以拍摄项目的快照。标志-m让Git将接下来的 消息("Started project.")记录到项目的历史记录中。输出表明我们在分支master上(见2), 且有两个文件被修改了(见3)。 现在我们检查状态时,发现我们在分支master上,且工作目录是干净的(见4)。这是你每次 提交项目的可行状态时都希望看到的消息。如果显示的消息不是这样的,请仔细阅读,很可能你 在提交前忘记了添加文件。

D.8 查看提交历史

Git记录所有的项目提交。下面来看一下提交历史:

git_practice$ git log
commit a9d74d87f1aa3b8f5b2688cb586eac1a908cfc7f
Author: Eric Matthes <eric@example.com>
Date: Mon Mar 16 07:23:32 2015 -0800Started project.
git_practice$

你每次提交时,Git都会生成一个包含40字符的独一无二的引用ID。它记录提交是谁执行的、 提交的时间以及提交时指定的消息。并非在任何情况下你都需要所有这些信息,因此Git提供了 一个选项,让你能够打印提交历史条目的更简单的版本:

git_practice$ git log --pretty=oneline
a9d74d87f1aa3b8f5b2688cb586eac1a908cfc7f Started project.
git_practice$ 

标志--pretty=oneline指定显示两项最重要的信息:提交的引用ID以及为提交记录的消息。

D.9 第二次提交

为展示版本控制的强大威力,我们需要对项目进行修改,并提交所做的修改。为此,我们在 hello_world.py中再添加一行代码:

hello_world.py
print("Hello Git world!")
print("Hello everyone.") 

如果我们现在查看项目的状态,将发现Git注意到了这个文件发生了变化:

git_practice$ git status
1 # On branch 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)
#
2 # modified: hello_world.py
#
3 no changes added to commit (use "git add" and/or "git commit -a")
git_practice$ 

输出指出了我们当前所在的分支(见1)、被修改了的文件的名称(见2),还指出了所做的 修改未提交(见3)。下面来提交所做的修改,并再次查看状态:

1 git_practice$ git commit -am "Extended greeting."
[master 08d4d5e] Extended greeting.1 file changed, 1 insertion(+)
2 git_practice$ git status
# On branch master
nothing to commit, working directory clean
3 git_practice$ git log --pretty=oneline
08d4d5e39cb906f6cff197bd48e9ab32203d7ed6 Extended greeting.
be017b7f06d390261dbc64ff593be6803fd2e3a1 Started project.
git_practice$ 

我们再次执行了提交,并在执行命令git commit时指定了标志-am(见1)。标志-a让Git将仓 库中所有修改了的文件都加入到当前提交中(如果你在两次提交之间创建了新文件,可再次执行 命令git add .将这些新文件加入到仓库中)。标志-m让Git在提交历史中记录一条消息。 我们查看项目的状态时,发现工作目录也是干净的(见2)。最后,我们发现提交历史中包 含两个提交(见3)。

D.10 撤销修改

下面来看看如何放弃所做的修改,恢复到前一个可行状态。为此,首先在hello_world.py中再 添加一行代码:

hello_world.py
print("Hello Git world!")
print("Hello everyone.")
print("Oh no, I broke the project!") 

保存并运行这个文件。 我们查看状态,发现Git注意到了所做的修改:

git_practice$ git status
# On branch 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)
#
1 # modified: hello_world.py
#
no changes added to commit (use "git add" and/or "git commit -a")
git_practice$

Git注意到我们修改了hello_world.py(见1)。我们可以提交所做的修改,但这次我们不提交 所做的修改,而要恢复到最后一个提交(我们知道,那次提交时项目能够正常地运行)。为此, 我们不对hello_world.py执行任何操作——不删除刚添加的代码行,也不使用文本编辑器的撤销功能,而在终端会话中执行如下命令:

git_practice$ git checkout .
git_practice$ git status
# On branch master
nothing to commit, working directory clean
git_practice$ 

命令git checkout让你能够恢复到以前的任何提交。命令git checkout .放弃自最后一次提 交后所做的所有修改,将项目恢复到最后一次提交的状态。 如果我们返回到文本编辑器,将发现hello_world.py被修改成了下面这样:

print("Hello Git world!")
print("Hello everyone.") 

就这个项目而言,恢复到前一个状态微不足道,但如果我们开发的是大型项目,其中数十个 文件都被修改了,那么恢复到前一个状态,将撤销自最后一次提交后对这些文件所做的所有修改。 这个功能很有用:实现新功能时,你可以根据需要做任意数量的修改,如果这些修改不可行,可 撤销它们,而不会对项目有任何伤害。你无需记住做了哪些修改,因而不必手工撤销所做的修改, Git会替你完成所有这些工作。


注意

想要看到以前的版本,你可能需要在编辑器窗口中单击,以刷新文件。


D.11 检出以前的提交

你可以检出提交历史中的任何提交,而不仅仅是最后一次提交,为此可在命令git check末 尾指定该提交的引用ID的前6个字符(而不是句点)。通过检出以前的提交,你可以对其进行审核, 然后返回到最后一次提交,或者放弃最近所做的工作,并选择以前的提交:

git_practice$ git log --pretty=oneline
08d4d5e39cb906f6cff197bd48e9ab32203d7ed6 Extended greeting.
be017b7f06d390261dbc64ff593be6803fd2e3a1 Started project.
git_practice$ git checkout be017b
Note: checking out 'be017b'.
1 You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:git checkout -b new_branch_name 
HEAD is now at be017b7... Started project.
git_practice$ 

检出以前的提交后,你将离开分支master,并进入Git所说的分离头指针(detached HEAD) 状态(见1)。HEAD表示项目的当前状态,之所以说我们处于分离状态,是因为我们离开了一个 命名分支(这里是master)。 要回到分支master,可检出它:


关于“Python”的核心知识点整理大全62-CSDN博客

关于“Python”的核心知识点整理大全37-CSDN博客

关于“Python”的核心知识点整理大全25-CSDN博客

关于“Python”的核心知识点整理大全12-CSDN博客

往期快速传送门👆(在文章最后):

感谢大家的支持!欢迎订阅收藏!专栏将持续更新!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外贸独立站建站详细操作流程一览,跨境电商卖家营销必看!

独立站是一个独立的网站&#xff0c;包括有独立的服务器&#xff0c;独立的网站程序以及网站域名。关于独立站的优势已经说了很多&#xff0c;本文就不再细谈&#xff0c;想了解的小伙伴可以自行查找之前发布的文章观看。 今天就来说说搭建独立站的详细步骤都有哪些&#xff1f…

Docker mysql 主从复制

目录 介绍&#xff1a;为什么需要进行mysql的主从复制 主从复制原理&#xff1a; ✨主从环境搭建 主从一般面试问题&#xff1a; 介绍&#xff1a;为什么需要进行mysql的主从复制 在实际的生产中&#xff0c;为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff…

【AI视野·今日NLP 自然语言处理论文速览 第七十期】Thu, 4 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 4 Jan 2024 Totally 29 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Multilingual Instruction Tuning With Just a Pinch of Multilinguality Authors Uri Shaham, Jonathan Herzi…

3D点云平面拟合算法

假设你有一组 3D 中的 n 个点&#xff0c;并且想要为它们拟合一个平面。 在本文中&#xff0c;我将推导出一个简单的、数值稳定的方法&#xff0c;并提供它的源代码。 听起来很好玩&#xff1f; 我们开始吧&#xff01; NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO…

阿里云服务器“可用区”是什么意思?

阿里云可用区是什么意思&#xff1f;可用区是同一个地域下电力和网络相互独立的区域&#xff0c;可用区是用来搭建高可用高容灾应用架构的&#xff0c;因为可用区之间可以做到故障隔离。阿里云服务器网aliyunfuwuqi.com简单说下可用区什么是可用区及可用区的选择方法&#xff1…

简易计算器的实现(MFC)

文章目录 1.预备知识1.简单计算器的实现2.快捷键1.全局快捷键1.创建2.注销 2.局部快捷键 3.计算机内部浮点数的存储1.浮点数表示格式2.浮点数的计算3.实例 2.实验目的3.实验内容4.代码实现1.界面编写2.准备工作3.数字输入4.特殊数字输入&#xff08;指数与小数&#xff09;1.指…

计算机组成原理 I/O方式

I/O 方式 I/O方式分类: 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备&#xff0c;从而控制0 设备与主机交换信息程序中断方式。只在 I/0 设备准备就绪并向 CPU发出中断请求时才予以响应。DMA方式。主存和 I/O 设备之间有一条直接数据通路&#xff0c;当主存和…

UDS诊断(ISO14229-1) 3D服务

文章目录 功能简介应用场景请求和响应1、请求2、子功能3、肯定响应4、否定响应 NRC 判断优先级顺序报文示例UDS中常用 NRC 功能简介 3D服务&#xff0c;即 WriteMemoryByAddress&#xff08;按地址写内存&#xff09;服务&#xff0c;允许客户端向服务器的一个或多个连续存储单…

开源游戏引擎:创造无限可能 | 开源专题 No.56

godotengine/godot Stars: 62.6k License: MIT Godot Engine 是一个功能强大的跨平台游戏引擎&#xff0c;可用于创建 2D 和 3D 游戏。它提供了一套全面的常见工具&#xff0c;让用户可以专注于制作游戏而不必重复造轮子。该引擎支持将游戏一键导出到多个平台上&#xff0c;包…

虾皮广告数据分析:如何进行虾皮广告数据分析以优化广告效果

虾皮&#xff08;Shopee&#xff09;作为一家知名的电商平台&#xff0c;广告数据分析是优化广告效果的关键步骤。通过对广告数据进行深入分析&#xff0c;卖家可以了解广告的表现、找出优势和不足&#xff0c;并制定更有效的广告策略。在本文中&#xff0c;我们将介绍如何进行…

Mac 16g约等于Windows多少g?

Mac 16g 内存等于 Windows 320g 内存 何为“黄金内存”&#xff1f; Mac 的内存是用黄金做的&#xff0c;而 Windows 的内存是用铁做的。 黄金的密度是 19.32 g/cm&#xff0c;而铁的密度是 7.874 g/cm。 因此&#xff0c;16g 的黄金体积是 0.082 cm&#xff0c;而 16g 的铁…

Vue3使用Pinia

1.安装 npm i pinia 2.搭建架子文件 2.1main.js import { createApp } from vue // 引入pinia import { createPinia } from piniaimport App from ./App.vue import router from ./router // 创建pinia const app createApp(App) //安装pinia app.use(createPinia())app.use(…

P1262 间谍网络

1、思路 阅读题目&#xff0c;发现有些间谍可以是被前面的点更新&#xff0c;也就是说&#xff0c;在一开始的时候&#xff0c;把能贿赂的人员从小到达排个序&#xff0c;再使用bfs算法&#xff0c;把他们能到达的人员的贿赂价钱设置为0。 有解的情况&#xff1a; 首先如果有…

【leetcode】力扣热门之反转链表【简单难度】

题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 用例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 输入&#xff1a;head [] 输出&#xff1a;[…

强化学习的数学原理学习笔记 - 时序差分学习(Temporal Difference)

文章目录 概览&#xff1a;RL方法分类时序差分学习&#xff08;Temporal Difference&#xff0c;TD&#xff09;TD for state valuesBasic TD&#x1f7e1;TD vs. MC &#x1f7e6;Sarsa (TD for action values)Basic Sarsa变体1&#xff1a;Expected Sarsa变体2&#xff1a;n-…

教程:Centos6迁移旧虚拟机文件后的网络配置教程,完美解决虚拟机移动后的网络ip变化问题

博主在工作后,想整整之前大学的虚拟机集群,因此特意从之前的旧电脑把虚拟机文件给拷贝了过来,在导入到vm-workstation,顺便能启动虚拟机后,发现之前的静态ip已经跟现在的宿主机网络不一样。想着重新配置,但觉得太麻烦,故想到了修改网卡的mac地址+网卡重配置方法,完美解…

【已解决】如何用c语言位运算输出浮点数数据

本博文源于笔者正在学习的c语言如何利用位运算输出浮点数数据类型&#xff0c;浮点数在其底部也是用二进制来处理&#xff0c;又考虑到他是低位在前高位在后的原理&#xff0c;因此进行了这样的代码编写 问题浮现 想要用c语言的位运算输出浮点数 问题源码 #include<stdi…

etcd储存安装

目录 etcd介绍: etcd工作原理 选举 复制日志 安全性 etcd工作场景 服务发现 etcd基本术语 etcd安装(centos) 设置&#xff1a;etcd后台运行 etcd 是云原生架构中重要的基础组件&#xff0c;由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册…

[大厂实践] 重新发明后端子集

子集算法有助于优化服务间连接利用率&#xff0c;降低资源使用。但随机或轮询子集算法在动态拓扑环境中会造成较高的连接扰动。本文介绍了谷歌在解决连接扰动方面所做的思考和实践&#xff0c;并介绍了当前最新的Rocksteadier子集算法。原文: Reinventing Backend Subsetting a…

面试题:怎么给详情页做性能优化的?

文章目录 一、背景二、接口优化方案总结1.批处理2.异步处理3.空间换时间4.预处理5.池化思想6.串行改并行7.索引8.避免大事务9.优化程序结构10.深分页问题11.SQL优化12.锁粒度避免过粗 三、最后 一、背景 针对老项目&#xff0c;去年做了许多降本增效的事情&#xff0c;其中发现…