【Linux】Git - 新手入门

文章目录

  • [1. git 版本控制器 - 该如何理解?](#1. git 版本控制器 - 该如何理解?)
  • [2. git / gitee / github 区别?](#2. git / gitee / github 区别?)
  • [3. Linux 中 git 的使用](#3. Linux 中 git 的使用)
    • [3.1 安装 git](#3.1 安装 git)
    • [3.2 使用 github 新建远端仓库](#3.2 使用 github 新建远端仓库)
      • [3.2.1 账号注册](#3.2.1 账号注册)
      • [3.2.2 创建代码仓库](#3.2.2 创建代码仓库)
      • [3.2.3 克隆仓库到本地](#3.2.3 克隆仓库到本地)
      • [3.2.4 .gitignore 文件](#3.2.4 .gitignore 文件)
    • [3.3 使用 git 提交代码到 github](#3.3 使用 git 提交代码到 github)
      • [3.3.1 三板斧第一招:git add](#3.3.1 三板斧第一招:git add)
      • [3.3.2 三板斧第二招:git commit](#3.3.2 三板斧第二招:git commit)
      • [3.3.3 三板斧第三招:git push](#3.3.3 三板斧第三招:git push)

1. git 版本控制器 - 该如何理解?

版本控制:

  • 我们写的代码不是一成不变的,往往需要经过多次修改
  • 但是可能会有一些尴尬的问题:比如我把代码改了,发现 bug 更多了,之前的代码也找不到了,怎么办?
  • 难道每次写代码之前,我都要自己先备份一遍吗?这也太麻烦了
  • 有没有一种工具可以自动帮我保存每次修改前后的代码,并且显示哪里进行了修改呢?
  • 于是 git 出现了,git 可以帮助我们管理各个版本的代码,以及其他强大且实用的功能,比如:多人协作,分布式管理
  • 今天只是简单入门,先在 Linux 系统上把 git 用起来

2. git / gitee / github 区别?

  • git 是一个工具,用于进行版本管理,本身不需要联网,即可在本地进行各种各样的管理
  • github / gitee 是一个网站,它们都依赖于 git
  • github 是一个国外的网站,我们访问经常会收到限制,所以 gitee 诞生了,gitee 是我国的一个网站,在功能上这两个网站是差不多的
  • git 本身不方便查看,因为它没有图形化的界面,所有操作都需要在命令行上完成,所以有了 gitee / github 这样的网站,把代码上传后,我们就可以在网站上很方便的查看到我们提交过的代码
  • gitee / github 有类似于"云盘"的功能,即使本地的代码由于各种原因被销毁了,只要你曾经把代码上传过 gitee / github ,就能直接克隆回本地
  • github 同时也是一个社区,被戏称为"全球最大的同性交友网站",我们可以在这里认识全世界的优质开发者,以及他们各种各样的实用代码项目

3. Linux 中 git 的使用

3.1 安装 git

  • 要使用 git ,当然要先在我们的 Linux 上安装 git
bash 复制代码
yum install -y git

3.2 使用 github 新建远端仓库

3.2.1 账号注册

3.2.2 创建代码仓库

  1. 点击这个绿色的New
  1. 根据提示输入信息,然后点下面这个绿色的Create repository,可能需要等待一会
  1. 在创建好的仓库页面中,复制仓库的链接,以便接下来进行克隆

3.2.3 克隆仓库到本地

  • 打开 Linux 系统,找到一个合适的路径,克隆
bash 复制代码
git clone 刚才复制的链接

3.2.4 .gitignore 文件

在别人的代码仓库经常会看到一个 .gitignore 文件,那么这个文件有什么用呢?

  • 作用:过滤掉不想提交的文件
  • 拿 vs 举例,每个工程文件里都有一大堆自动生成的其他文件,而我们只想上传自己写的 .h .c .cpp 文件,这时候就可以用 .gitignore 文件来自动过滤掉不想提交的文件
  • 使用方法:直接把 .gitignore 文件放到仓库目录即可

3.3 使用 git 提交代码到 github

首先要有一个文件用于提交,这里我把上次写的进度条拿过来

3.3.1 三板斧第一招:git add

bash 复制代码
git add 文件名
  • 作用:将需要用 git 管理的文件告知 git

3.3.2 三板斧第二招:git commit

bash 复制代码
git commit -m "本次提交说明"
  • 作用:将git add的代码提交到本地仓库

注意:第一次使用 git 可能会遇到报错,让我们输入邮箱和用户名

解决方法:

bash 复制代码
git config --global user.email "你的邮箱"
git config --global user.name "你的用户名"

这里的邮箱和用户名建议与注册 github 时的邮箱和用户名的保持一致

3.3.3 三板斧第三招:git push

bash 复制代码
git push
  • 作用:将git commit的代码同步到远端服务器
  • 需要填入用户名和密码,同步成功后刷新 github 网页,即可看到推送成功的代码

注意:这里可能遇到两个报错...我研究了一下,简单来说:

  1. 新版 git 改变了默认的推送模式,报错如下:
bash 复制代码
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
  1. github 不让使用 用户名+密码 的方式验证,报错如下:
bash 复制代码
fatal: Authentication failed for 'https://github.com/TianJiaQi-Code/Linux.git/'

为了方便查阅,我把解决方法单独写了两篇博客:

解决完这些问题后,就可以正常使用git push


END

相关推荐
我们的五年几秒前
【Linux课程学习】:进程描述---PCB(Process Control Block)
linux·运维·c++
我言秋日胜春朝★1 小时前
【Linux】进程地址空间
linux·运维·服务器
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
C-cat.1 小时前
Linux|环境变量
linux·运维·服务器
yunfanleo1 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
m51271 小时前
LinuxC语言
java·服务器·前端
运维-大白同学2 小时前
将django+vue项目发布部署到服务器
服务器·vue.js·django
糖豆豆今天也要努力鸭2 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎2 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师2 小时前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器