python3 入门笔记3 git版本控制

让我们在本地新建一个文件,最后上传到刚刚创建的仓库中。

现在的你在 Linux 中创建文件,应该很轻车熟路了吧:

mkdir Demo
cd Demo
gedit README.md

然后在打开的文件中输入 #Demo,保存文件后关闭 gedit 。

图片描述

cat 命令查看一下文件内容:

图片描述

创建文件 OK 了,但现在,Demo 目录还只是一个普通的目录,我们如何用 Git 来控制这个目录?

你只需在 Demo 目录中,输入 git init 即可。

git init

这是 Git 的初始化操作,作用是将一个已存在文件夹,置于 Git 的控制管理之下。

ls -la 命令,会发现一个名叫 .git 的目录被创建了,这意味着仓库初始化成功。可以进入到 .git 目录查看下有哪些内容。

图片描述

Git 提交代码的基本流程是这样的:

  • 创建或修改 本地文件
  • 使用 git add 命令,将创建或修改的文件添加到本地的 暂存区,这里保存的是你的临时更改
  • 使用 git commit 命令,提交文件到 本地仓库
  • 使用 git push 命令,将本地代码库同步到 远端仓库
图片描述

目前为止,我们实现了第一步,创建了一个文件,我们的最终目标是:将本地的 Demo 仓库,同步到 GitHub 上的 Demo 仓库中。

💡 git add

使用 git add + 文件名/目录名 命令,可以将你需要同步的文件,添加到本地的暂存区。我们先进入 DEMO 目录,然后把 README.md 文件添加一下:

cd /home/shiyanlou/Demo
git add README.md

输入 git status ,可以检测当前目录和暂存区的状态,查看哪些修改被暂存了:

图片描述

可以看到我们刚刚 add 的文件已经被初始提交了。

💡 git commit

git commit 提交是你工作的一个里程碑 —— 每当你完成一些工作,都可以创建一次提交,保存当前的版本。

这样一来,无论你何时修改了文件,都创建一个新版本的文件,你可以很方便地查看以往所有版本的文件和内容。

在提交之前,你必须先设置你的名字和 email,这是你在提交 commit 时的签名,每次提交记录里都会包含这些信息。

使用 git config 命令进行配置:

git config --global user.name "YourName"
git config --global user.email "YourEmail@xxx.com"

完成配置后,我们可以创建提交了,请输入:

git commit -m "first commit"

commit 的语法结构是 git commit -m "注释",通过上个命令,你创建了一条注释为 “first commit” 的 Git 提交。

图片描述

⚠️ 注意:

每次提交,你都必须用 -m + '注释' 编辑注释信息 。它不仅能协助我们辨别不同的版本,而且能让你理解,自己当时对文件做了什么修改。

比如当你每次在文件中添加了新的代码后,你可以写一句提交信息:“添加了 XXX 代码” —— 当你一个月后回来看提交记录或者 Git 日志 时,你还能知道当时做了什么。

终于到了激动人心的时刻,我们要把本地仓库提交到远端仓库(即 Github 仓库)中。

💡 连接 Github 仓库

使用如下命令,将本地仓库连接到 GitHub 仓库中:

git remote add origin 仓库链接

仓库链接请在这里复制,并用剪切板功能粘贴进去:

图片描述

我们分析一下这个命令,首先 remote 的意思是远程

图片描述

add 很容易明白 —— 添加。git remote add 表示通知 Git 去添加一个远程仓库,后面接上的 origin 是这个仓库的小名,方便以后沟通,通常默认用 origin 来表示;最后再接上远程仓库的地址,即你刚刚创建的 Github 仓库链接。

图片描述

💡 push 命令

push 顾名思义,就是推送, 使用 push 可以把本地仓库推送到远端仓库中。

具体命令如下:

git push origin master

执行后,GitHub 服务器 需要验证你的身份,按提示输入你的用户名和密码即可完成 push 同步。

⚠️ 注意:在 Linux 中输入密码是不可见的,输完后直接按回车键即可。

图片描述

接下来就是见证奇迹的时刻 —— 再刷新你的 Github 仓库,就会发现多了这些东西:

图片描述

💡分支的概念:分支在多人协作中经常会被用到,但前期我们用不到这个功能,为了不给你增加认知负担,这里就先不讲了。你只需知道 Git 管理的项目进程中,有一条默认的主分支 - master 即可。(想象 Git 是一棵树,master 就是树干,树干上还可以生出很多分支来,如 master 2.0、master 3.0 等)

本节实验最后一个知识点是 git clone 命令,它可以帮你拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

图片描述

如果你想要复制一个项目,看看代码,或者把自己的远程仓库复制到本地,可以执行命令:

git clone [url]

[url] 指的就是你想复制的仓库,我们在 github.com 上提供了一个名字为 gitproject 的公开仓库, 供大家测试,现在你要把这个仓库复制到实验环境中,只需输入:

cd /home/shiyanlou/
git clone https://github.com/shiyanlou/gitproject

操作完成后,会发现 /home/shiyanlou 目录下多了一个 gitproject 文件夹,这个文件夹里的内容就是我们刚刚 clone 下来的代码。

图片描述

回顾一下本节实验学到的内容:

  • 版本控制
  • Git 和 Github 的历史
  • 在 GitHub 创建仓库
  • 添加修改到暂存区
  • 提交代码
  • 同步远程仓库

之后,请你把这些操作整理在脑图中,类似这样:

图片描述

🔥 综合练习

现在有 Github 账户,为何不把这几天的学习记录下来呢?

你可以在 Github 中新开一个仓库,起名为「Louplus」,然后把这几天的笔记或脑图都放进去,这样做的好处是:

  • 方便之后查阅
  • 漂亮的学习记录,可以激励你以后的学习
  • 这将是你未来求职最好的证明

我们为你准备了四张从 Linux 到 Python 到 Git 的学习脑图,请你试着用今天学到的内容,上传到 Louplus 的仓库中:

💡 步骤:

  1. Github 的个人主页中新建一个仓库,命名为 Louplus

  2. 复制仓库链接,在实验环境中,将该仓库克隆到本地
    图片描述
  3. 进入本地的仓库目录,输入以下命令,下载我们之前的学习脑图(可以用剪切板一口气把四行命令粘贴进去):

wget https://labfile.oss.aliyuncs.com/courses/1330/linux.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python1.png
wget https://labfile.oss.aliyuncs.com/courses/1330/python2.png
wget https://labfile.oss.aliyuncs.com/courses/1330/git.png

  1. 使用 git add --all 命令,添加仓库内的所有文件

  2. 使用 git commitgit remotegit push 命令,将本地仓库同步到 Github 中

完成后,再次刷新你的 Github 仓库,4 张图片就这么被上传了~

图片描述

最后,不要忘了做我们的最终挑战~

最终挑战很简单:请你把上个挑战完成的代码文件,传到自己的 Github 上。

最终挑战也很重要:从现在开始,就请养成良好的代码上传习惯,不管是学习中的代码、挑战中的代码,都可以上传到 Github 上,你的代码仓库将是你未来的财富。

胜利就在前方,加油 ~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,042评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,996评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,674评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,340评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,404评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,749评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,902评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,662评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,110评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,577评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,258评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,848评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,726评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,952评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,271评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,452评论 2 348

推荐阅读更多精彩内容