【git基础使用】易上手,好理解

257 阅读5分钟

Git 基础使用

Git 用户信息配置(使用频率低)

配置用户名

git config --global user.name "用户名"

配置邮箱

git config --global user.email "邮箱"

查看全局配置

git config --global -l

Git 的三个区域

  • 工作区
  • 暂存区
  • 仓库

Git 文件的四种状态

  • Untracked 未跟踪
  • Unmodified 未修改
  • Modified 已修改
  • Staged 已暂存

初始化 Git 仓库

git init

查看当前仓库文件状态

git status
git status -s

将文件提交到 Git 仓库

  1. 添加到暂存区
  • 未跟踪的文件添加到暂存区
  • 已修改的文件添加到暂存区
git add 文件名
git add .
  • Tips: 「.」 表示当前目录,所以 git add .的意思是将当前目录下所有需要添加到暂存区的文件,加入暂存区

  1. 提交到 git 仓库
  • 必须要写提交信息
git commit -m "提交信息"
  • 注意事项: 如果 git commit时,忘了-m
    1. 英文输入法,输入 :q! 按「回车」
    2. 重新执行git commit -m "提交信息"

跳过暂存区,直接提交到 Git 仓库

git commit -am "提交信息"

注意:**git commit -am**只能提交已跟踪的文件,未跟踪的文件,必须先**git add .**

查看提交日志

查看所有日志信息详情

git log

查看最近 5 条提交日志

git log -5

单行显示日志信息

git log --oneline

版本回退

  1. 找到要回退的目标版本
git log
  1. 使用 git reset --hard ID 退回目标版本
git reset --hard a956f2ae5

重新退回最新版本

  1. 使用 git reflog 找到最新版本的id
git reflog
  1. 使用 git reset --hard ID 退回目标版本
git reset --hard 6f535f0

开源协议

  1. GPL 具有传染性的开源协议,只要用了GPL协议的项目,在此基础上进行修改的衍生项目,都必须开源且不可商用。
  2. MIT 对商业项目极其友好的协议,几乎没有任何限制,只需要在使用项目时,标注作者出处即可。

本地仓库推送至 GitHub

  1. 初始化本地仓库
git init
  1. 将本地所有文件,提交至仓库
  • 注意:**git commit -am**只能提交已跟踪的文件,未跟踪的文件,必须先**git add .**
git add .
git commit -m "提交信息"
  1. 在 GitHub 中创建一个空仓库

  2. 将本地仓库和远程仓库进行关联

  3. 推送代码至远程仓库

git push -u origin master

Git 加强

  1. 提交上传的时候总会出现一点bug
  • 上传代码时未初始化仓库

  • 初始化了仓库,但是没有提交代码

  • 用户名密码错误

    • username for gitee.com : 输入用户名

    • password for gitee.com : 输入密码

  • 如果第一次输入错误了账号密码,自动记录,如何清除记录的账号密码?

git config --system --unset credential.helper

git push 命令

作用:将本地仓库推送至远程(不会推送未提交到仓库的代码)

新写了代码不要直接git push

应该先提交至本地仓库后再推送至远程

特点:

只有第一次推送至远程仓库需要使用git push -u origin master

以后每次使用,直接 git push 即可

使用 SSH 提交代码

生成 SSH 秘钥

ssh-keygen -t rsa -b 4096 -C "GitHub 或码云注册的邮箱地址"

在 GitHub 或码云配置 SSH 秘钥

  1. 找到 SSH 公钥文件
C:\用户目录\.ssh\id_rsa.pub

git clone 命令

将远程仓库下载到本地,克隆了整个仓库

git clone 仓库的地址(可以是 https 也可以是 ssh)

Tips:使用**git clone**命令下载代码时,选择的协议,决定了将来提交代码时的协议。所以建议使用 SSH 协议进行克隆。

分支

原则:不要在 master 分支直接提交代码,需要新建分支后,完成功能再合并到 master 分支。

分支的基本操作

查看所有分支

git branch

创建分支

Tips:一定要基于 master 分支去创建分支

git branch 分支名(使用英文)

切换分支

git checkout 分支名

创建并切换分支

git checkout -b 分支名

合并分支

git checkout master
git merge 功能分支

删除分支

git branch -d 分支名

**Tips:强制删除分支(谨慎使用)  ****git branch -D 分支名**

冲突的解决

冲突:当两个分支同时修改相同的文件,合并时就会发生冲突,都是后者解决冲突,所以大家记得及时提交并合并代码。

当发生冲突时,解决过程如下:

  1. 修改冲突的文件,确定修复后的代码
  2. 执行 git add . 将冲突修复好的文件提交到暂存区
  3. 执行 git commit -m "提交信息" 将冲突修复后的内容提交至仓库

关键字:conflict 冲突

将本地分支推送至远程

只需要在功能分支执行 git push 命令即可,终端会给出对应的提示,复制粘贴运行就可以推送至远程

$ git push
fatal: The current branch pay has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin pay

git pull 命令

作用:将远程仓库的代码拉取到本地,从服务器获取最新的代码

开发时,每天早上第一件事就是执行 git pull

课外扩展

  1. 将仓库提交方式从 HTTPS 改为 SSH git remote 是查看并配置 git 远程仓库的指令 查看当前仓库关联的远程仓库地址 删除已关联的远程仓库地址 添加关联的远程仓库地址
git remote -v
git remote remove 仓库名
git remote add 仓库名 仓库地址
  1. 真实 Git 开发流程 原则:master 分支不能直接提交代码git merge 命令将没有任何意义
  • 创建功能分支,进行代码的编写,提交至功能分支
  • 将功能分支推送至远程仓库
  • 新建 Pull Request
  • 将功能分支的代码请求合并至 master 分支
  • 艾特老大来做Code Review(代码审查)
  • 由审查者测试代码通过后,合并至 master 分支