Python 测开28期 - aileen - 学习笔记 - Git知识学习

一、git环境配置
1、git安装
在mac电脑终端下可以使用brew命令安装,命令详情如下:
brew install git
2、git环境验证
mac电脑终端下输入git --version
二、git工作流程
1、基本概念
文件状态:未跟踪,未修改,已修改,暂存区


2、git工作流程
git工作流程如下图:

1、工作区和暂存区的交互
1)工作区中的文件或目录通过git add操作添加或修改后进入到暂存区;
2)暂存区中的文件通过git rm文件操作删除后进入到工作区
3)暂存区中的文件通过git checkout文件恢复内容后进入到工作区
2、暂存区和本地仓库的交互
1)暂存区保存一小段的工作内容通过git commit -m "备注"操作提交到本地仓库;
2)本地仓库可以通过git reset版本号操作回退到某个记录中(暂存区)
3、本地仓库和远程仓库的交互
1)通过 git push命令同步本地仓库到服务器中;
2)通过git pull命令同步服务器到本地仓库中。
三、git常用命令
3.1、基于git的远程仓库

git远程仓库的应用场景:
1)获取远程仓库代码:开源代码或项目代码
2)项目协作:维护自己的代码,或多人维护同一项目

3.2、git同步命令
3.2.1、克隆远程仓库
git clone


第一步:配置
配置方式一:使用https连接方式需要进行的配置。备注:如下2种方式提到的用户名和邮箱均为https://gitee.com上的用户名和邮箱
如果使用https连接方式,需要提前配置,在terminal终端下按照如下命令进行配置即可。

配置方式二:使用ssh连接方式需要进行的配置


实操截图如下:

进入私钥和公钥文件所在地址,查看公钥信息,以便配置到gitee中:

查看公钥信息(.pub结尾的文档)

https://gitee.com上配置公钥,操作方法如下:

第二步:克隆远程仓库
配置完成后,克隆远程仓库,由于首次进入gitee,远程服务没有仓库,需要在远程仓库上创建一个git_demo的仓库,方便学习练习,打开网站进行创建即可,创建完成后新建1的代码文件,提交完成后,选择克隆/下载,选择SSH方法复制地址,再在mac terminal下新建git_prac文件夹目录,进入该文件夹目录,执行git clone语句,则可将远程仓库克隆到本地。
远程仓库获取ssh方法地址截图如下:

克隆远程仓库命令执行截图如下:

2)拉取远程仓库
拉取远程仓库到本地:
git pull
场景是:当远程仓库代码有更新时,需要将更新的代码拉取到本地。执行结果截图如下:

3)初始化仓库(备注:初始化仓库和克隆仓库选择一个即可)

  • 在已存在的目录中初始化仓库:
    git init
  • 关联远程仓库:
    git remote add origin
    本地和远程仓库建立连接之后,需要再执行下面语句将远程仓库的内容同步到本地。

3.3、git修改命令
3.3.1 跟踪新文件
添加文件或目录到暂存区:git add /


运行结果截图:

3.3.2 提交更新
1)提交到本地仓库:git commit -m “comments”
2)(不推荐使用)已修改文件跳过使用暂存区域:git commit -a -m “comments”

3.3.3 推送到远程仓库
推送本地仓库到远程仓库:git push

3.4、git常用调试命令

  • 检查当前文件状态:git status
    没有改动时的状态:
    image


  • 查看已暂存和未暂存的修改
    比较当前文件和暂存区域快照之间的差异:git diff
    查看已暂存的将要添加到下次提交里的内容:git diff --staged


  • 撤销操作
    撤销对文件的修改:git checkout 文件名


    取消暂存:git reset HEAD 文件名(也可以根据git提示语句来取消)

  • 移除文件
    删除文件:git rm -f 文件名
    若想把文件从暂存区和本地都删除,使用上面的命令。
    移出暂存区:git rm --cached 文件名
    若只是想把文件从暂存区删除,但本地还有该文件,则使用移出暂存区的命令。

  • 忽略文件


    操作步骤:第一步:在git目录下新建.gitignore文件,并在文件中写入需要忽略的文件和目录
    第二步:将文件使用git add . 添加到暂存区
    第三步:将文件使用git commit -m ‘备注’ 提交到本地仓库
    第四部:将文件使用git push 推送到远程仓库
    第五部:在远程仓库中查看效果,会发现.gitignore文件中的内容被忽略没有被推送过来。

作业:本地仓库截图: