侧边栏壁纸
  • 累计撰写 379 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录
Git

Git 的基本使用(一)配置用户名邮件等以及代码拉取

Z同学
2022-03-15 / 0 评论 / 2 点赞 / 650 阅读 / 3,147 字
温馨提示:
本文最后更新于 2022-03-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.介绍

本篇主要介绍我们安装完毕Git后,如何创建作者和绑定邮箱,以及如何拉取和推送代码。并介绍这些命令的实际作用。

看完之后, 大家一定会有收获的。

当我们在本地安装完毕Git之后,不管你使用的哪个操作系统后面的基本配置都是一样的。因为都可以通过命令行的形式进行操作。如果不会安装可以参考以下两篇内容:

Git 基础 -让我们认识什么是Git,并在windows,linux,macOS中安装git (zinyan.com)

Git 基础-Git的一些特性介绍 (zinyan.com)

2.用户信息

我们安装完毕Git之后,第一件事就是设置我们的git提交的用户名和邮件地址。

因为Git每次提交的时候需要告诉对方。本次提交的作者和邮件地址是多少。而这个信息就是我们要配置的了。

$ git config --global user.name "你的名字"
$ git config --global user.email zinyan@example.com

注意了: 我们配置的用户名称和邮件地址不影响账号验证。我们之后通过ssh进行配置就可以了。这也是大家通常采用的方法。

所以,我们的用户名和邮箱地址是可以根据需求自己定义的。

2.1 -global 命令

我们上面的配置,使用了--global 那么配置的信息对于Git来说就是全局配置了。只要有需要读取用户名和邮箱地址的位置,默认就会读取我们配置的。

那么我们如果想针对不同的项目,使用不同的用户名称和邮件地址时。例如我们自己的github上不想使用公司的邮箱,想用私人的。

那么很简单,只需要我们切换到该项目的根目录下(也就是有.git文件夹)。

执行下面的命令:

$ git config  user.name "你的名字"
$ git config  user.email zinyan@example.com

之后这个项目的提交和配置,都会使用项目本身生效的用户名和邮箱配置了。

3. Git 帮助

我们可以通过git help 得到git各种命令和介绍。

我们如果忘记了部分操作命令的单词拼写或者记得部分,但是不全。那么git help 就是

我们的最佳使用方法了。

image-20220314180159788

这些数据不需要Git 联网就能查询到了。帮助信息就存在本地。

我们还可以通过git help config 命令获取到关于config命令的手册。会在本地浏览器中打开下面的网页内容。

image-20220314180355765

3.1 可选性参数查询

我们如果不知道某个参数的可选项,或想查询某个命令下有哪些可选项。单纯的git help 帮助不了。我们需要在指定的命令后面 添加-h。就能得到该命令可用的一些可选项了。

示例:$ git commit -h

image-20220314180628210

我们就可以得到commit 的相关可选项参数了。这种方法也有助于我们了解网上一些git命令的完整意思。

4. 代码拉取

使用Git管理代码仓库,通常有两种情况:

  • 将尚未进行版本控制的本地目录转为Git仓库,并提交到远端。
  • 从其他服务器上拉取一个已经存在的Git仓库,到本地进行开发。

一个是从无到有,一个是从有到无。这两个操作都会在我们本地的机器中得到一个已经就绪了的Git仓库。之后我们就围绕这个仓库进行提交和拉取等操作。

4.1 在本地已存在目录中初始化仓库-git init

首先通过cd命令,将git切换到该文件夹路径下。

例如我访问我本地D盘的ijkplayer 源码库:

image-20220314181320919

通过 cd 切换到该目录下。(ps: 由于该目录下已经是一个git仓库了。所以会列出仓库分支,如果该目录还不是一个仓库,那么不会显示我们上面的蓝色文字内容了)

然后我们执行:git init 命令。

这个命令将会在本地创建一个.git的子目录。这个子目录中将会包含我们初始化的Git仓库中所有的必须文件。我们刚开始执行init命令只是一个初始化操作。项目里的其他文件还没有被Git进行识别并存储。

然后,执行 git add . 将目录下的文件和文件夹添加到暂存库中。

示例:

$ git add . //将当前整个文件夹添加到仓库
$ git add * //将当前文件夹中的全部文件对象添加到仓库

我们如果在根目录下,直接执行git add . 就可以了。

添加完毕后,就要执行commit 将暂存库的数据推送到本地仓库中。

示例:

git commit -m '这是个一个用来示例的推送效果'

完整的效果如下所示:

image-20220315095821582

image-20220315095857382

之后我们执行commit的效果如下:

image-20220315095952126

到这里,我们就能通过Git进行管控了。

但是这个时候我们的代码都其实存储在本地。这也是git的分布式的特性,本地就是一个仓库不用远端也能管理代码的版本。

我们如果需要将本地的git仓库推送到远程。就需要使用git push命令了

但是我们直接push 可能会出现错误,我们需要关联到远程仓库。

git remote add origin 我们的远程仓库地址

4.2 Gitee 创建仓库

我们如果想将本地Git项目推送到远程。那么首先就需要有一个远端的Git仓库来接收。下面主要从Gitee上搭建一个空仓库,并进行数据推送吧。

image-20220315103351262

image-20220315103455374

点击创建之后,就等待仓库的生成了

image-20220315103525877

当仓库创建完毕后,显示效果如下所示:

image-20220315103621205

我们可以通过 克隆/下载 得到项目的giti地址信息。例如:

image-20220315103844526

然后我们将本地仓库与远程仓库关联:

$ git remote add origin git@gitee.com:zinyan/demo.git

效果如下:

image-20220315104103891

其中的origin 并不是必须这么写的,只是约定成俗的一种写法。它实际上就是后面的git远端仓库的别名。我们以后要找远端仓库,直接输入origin,那么git就知道你要访问的就是远程的git地址了。我们也可以根据自己的需求命名其他的。

如果远程仓库有更新,我们需要先与远程库进行同步和合并之后才能进行提交。

否则提交就会报错:

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'gitee.com:zinyan/demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

因为远程仓库和本地仓库数据不一致,所以我们提交push操作失败了。

我们需要先进行拉取:git pull --rebase origin master 将远程仓库的内容更新到本地仓库中。

image-20220315104423147

而上面中 origin 和master 这是两个分支名称。远程的在左边,本地的在右边。而为什么是origin,那是因为我们在上面将本地和远程仓库关联的时候,写的是origin。我们也可以命名其他的。而本地默认的是master关键字。

我们下一步就是执行push命令。将本地的master分支的内容同步到远程了。

使用命名:git push -u origin master

效果如下:

image-20220315105102191

远程仓库的效果如下:

image-20220315105208061

我们的本地内容就推送到远程仓库了。

我们之后可以通过git log 查到我们的更新记录和日志信息了。

image-20220315105416710

其他

由于本地已经配置了ssh,所以我的提交和创建过程中没有太多的账户验证问题。

如果没有配置好ssh,那么在我们push或pull的时候就会需要我们输入用户名和密码。比较繁琐。现在大家通常都是使用ssh进行验证登录的。

下一篇介绍如何配置ssh和从远程仓库拉取项目吧。如何拉取已经存在的项目到本地吧。

2

评论区