前言
我们都知道使用Git工具可以在代码工程中进行很方便的版本回溯,但是它的妙用还有很多,比如说写论文的过程中就可以使用git进行版本控制,比每次修改一次论文就得保存一版新的要方便很多。
Git的安装很简单,这里就不再赘述,直接进行使用教程!
1. 配置 GIt
Git跟踪谁修改了项目,哪怕参与项目开发的人只有一个。为此,Git需要知道你的用户名和电子邮件地址。你必须提供用户名,但可以使用虚构的电子邮件地址:
2.创建项目
我们来创建一个要进行版本控制的项目。在你的系统中创建一个名为“git_sample”的文件夹,同时在文件夹中创建一个最简单的python程序。
3 忽略文件
扩展名为.pyc的文件是根据.py文件自动生成的,因此我们无需让Git跟踪它们。这些文件存
储在目录__pycache__中。为让Git忽略这个目录,创建一个名为.gitignore的特殊文件(这个文件
名以句点打头,且没有扩展名),并在其中添加下面一行内容:
你可以 先 创建一个 TXT文件然后写下这行内容,之后 把文件整体 改为 .gitignore
4 初始化仓库
你创建了一个目录,其中包含一个Python文件和一个.gitignore文件,可以初始化一个Git仓库
了。为此,打开一个终端窗口,切换到文件夹git_practice,并执行如下命令:
输出表明Git在git_practice中初始化了一个空仓库。仓库是程序中被Git主动跟踪的一组文件。
Git用来管理仓库的文件都存储在隐藏的.git
/中,你根本不需要与这个目录打交道,但千万不要删
除这个目录,否则将丢弃项目的所有历史记录。
5 检查状态
执行其他操作前,先来看一下项目的状态:
第一行表示 我们在 master 分支上
第二行表示 没有任何提交
第三行就是重头戏 是指的 可以将 这俩文件加入到下一次提交中
6 将文件加入到仓库中
下面将这两个文件加入到仓库中,并再次检查状态:
命令git add .
将项目中未被跟踪的所有文件都加入到仓库中。它不提交这些文件,而只是让Git开始关注它们。现在我们检查项目的状态时,发现Git找出了需要提交的一些修改。标签new file意味着这些文件是新添加到仓库中的。
7 执行提交
我们执行命令git commit -m "message"以拍摄项目的快照。标志-m让Git将接下来的消息记录到项目的历史记录中。输出表明我们在分支master上,
且有两个文件被修改了。
现在我们检查状态时,发现我们在分支master上,且工作目录是干净的。这是你每次提交项目的可行状态时都希望看到的消息。如果显示的消息不是这样的,请仔细阅读,很可能你在提交前忘记了添加文件。
8 查看提交历史
Git记录所有的项目提交。下面来看一下提交历史:
你每次提交时,Git都会生成一个包含40字符的独一无二的引用ID。它记录提交是谁执行的、
提交的时间以及提交时指定的消息。并非在任何情况下你都需要所有这些信息,因此Git提供了
一个选项,让你能够打印提交历史条目的更简单的版本:
标志–pretty=oneline指定显示两项最重要的信息:提交的引用ID以及为提交记录的消息。
9 第二次提交
为展示版本控制的强大威力,我们需要对项目进行修改,并提交所做的修改。为此,我们在
hello_world.py中再添加一行代码:
如果我们现在查看项目的状态,将发现Git注意到了这个文件发生了变化:
之后对修改内容进行提交
我们再次执行了提交,并在执行命令git commit时指定了标志-am。标志-a让Git将仓库中所有修改了的文件都加入到当前提交中(如果你在两次提交之间创建了新文件,可再次执行命令git add .将这些新文件加入到仓库中)。
标志-m让Git在提交历史中记录一条消息。
我们查看项目的状态时,发现工作目录也是干净的。最后,我们发现提交历史中包含两个提交。
10 撤销修改
首先如果我们要退回我们最近的一次修改
直接可以执行 git checkout .
命令
此时我们发现 数据被修改了
之后执行命令
之后就会发现文件回到了 最后一次修改以前
11 检出以前的提交
你可以检出提交历史中的任何提交,而不仅仅是最后一次提交,为此可在命令git check末尾指定该提交的引用ID的前6个字符(而不是句点)。通过检出以前的提交,你可以对其进行审核,然后返回到最后一次提交,或者放弃最近所做的工作,并选择以前的提交:
检出以前的提交后,你将离开分支master,并进入Git所说的分离头指针(detached HEAD)状态。
HEAD表示项目的当前状态,之所以说我们处于分离状态,是因为我们离开了一个命名分支(这里是master)。
当然你也可以回归当前master分支,除非你要使用Git的高级功能,否则在检出以前的提交后,最好不要对项目做任何修改。然而,如果参与项目开发的人只有你自己,而你又想放弃较近的所有提交,并恢复到以前的状态,也可以将项目重置到以前的提交。为此,可在处于分支master上的情况下,执行如下命令:
我们首先查看了状态,确认我们在分支maste上。查看提交历史时,我们看到了两个提交。
接下来,我们执行命令git reset --hard,并在其中指定了要永久地恢复到的提交的引用ID的前6个字符。
再次查看状态,发现我们在分支master上,且没有需要提交的修改。
再次查看提交历史时,发现我们处于要从它重新开始的提交中。
这个也是我使用最多的命令,因为我们可以在论文写作或者简历修改的时候通过这个命令去回溯以前的版本,而不是不停地保存新的版本…
12 删除仓库
你可以直接在文件目录删除 .git 文件
也可以直接执行 rm -rf .git
之后 重新初始化仓库就可以。