Git常用命令的学习

文章目录

Git常用命令的学习

本笔记基于本人学习所写,手把手展示git命令的实施和远程仓库搭建

1️⃣ 前言

版本控制分类

1. 集中式版本控制

代表工具:SVN、CVS

特点:版本数据统一存放在中央服务器,本地无完整版本备份,联网依赖强,中央服务器故障会影响所有开发者。

2.分布式版本控制

代表工具:Git

特点:每个本地仓库都是完整版本备份,无需全程联网,安全性高、速度快、分支管理灵活 ,是目前主流版本控制工具

2️⃣说明

git Bash中写的git命令,会涉及到一些linux命令,大概有以下几个要掌握:

  • ls/ll 查看当前目录
  • cat 查看文件内容
  • touch 创建文件
  • vi 指vi编辑器(方便展示效果)

3️⃣常见命令

注:

  • Git GUI : Git提供的图形界面工具
  • Git Bash : Git提供的命令行工具

1.设置用户信息

  • git config --global user.name 设置用户名
  • git config --global user.email 设置邮箱

2.为常见指令设置别名(可选)

因为有些常用的指令参数分别多,每次都要输入好多参数,我们可以使用别名

1.打开用户目录,创建.bashrc 文件

由于部分windows 系统不允许用户创建点号开头的文件,可以打开gitBash 执行命令创建

$ touch ~/.bashrc 命令 (~就表示当前用户文件的根目录)

即创建了一下文件:

2.如果是在桌面创建一个就是$ touch .bashrc命令

3.创建了文件后,我们可以学习去输入一些内容,比如在我们刚刚创建的.bashrc 文件中写入内容

复制代码
# 用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 用于输出当前目录所有文件及其基本信息
alias ll='ls -al'

注:如果文件乱码咋办?

  • 打开GitBash 执行一下命令

git config --global core.quotepath false

  • 如果你的git安装目录有过修改要找到你的安装目录,找到下面的文件

$(git_home)/etc/bash.bashrc 以下目录的这个文件并在文件最后加入一下两行

复制代码
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

3.获取本地仓库

由于我们要使用git 对我们的代码进行版本控制,首先要获得本地仓库

  • 在电脑的任意位置建立一个空目录作为我们的本地git 仓库

  • 在这个目录中,点击右键打开我们的Git bash 窗口并执行git init 命令(初始化当前目录为一个git 仓库)

    即如下图:

  • 注:如果创建成功了,就可以在文件夹下看到隐藏的git目录(当然,因为之前我们都在桌面进行指令的操作,所以.git 会被创建在桌面上,但是还是建议放在其他盘中)

4.基础操作指令

如何利用命令来控制这些状态之间的转换:

  • git add (由工作区 ---> 暂存区)
  • git commit (暂存区 ---> 本地仓库)

1.查看文件的状态:

  • git status ,示意如下图:

2.再把它放回来(git commit -m "注释内容"),示意图如下:

3.如果要看历史用git log , 示意图如下:

这样就可以查看仓库的修改历史了,当然我们还可以限制条件:

  • 命令形式: git log [option]
    • options
      • --all 显示所有分支
      • --pretty=oneline 将提交信息显示为一行
      • --abbrev-commit 使得输出的commitld 更加简洁
      • --graph 以图的形式展示
      • --decorate 打开参数

4.要修改文件,流程如下:

​ 就要利用编辑器,比如这里使用vi 编辑器输入vi file01.txt 的指令,就可以对文件进行修改,先按Esc ,然后按Shift +冒号,最后在光标出输入wq 再回车就可以返回了, (注:每次要修改文件要先输入i 然后才能修改的),此时文件在工作区 ,再输入git add. 再把它放到缓存区。

⚠️ 注意事项

1 1 1.慎用 git add . :该命令会暂存所有修改,可能将敏感文件(如密钥、配置文件)意外纳入版本控制。务必配合 .gitignore 文件忽略不需要跟踪的文件。

2 2 2.提交前检查:养成执行 git status 查看暂存区内容的习惯,确认只有目标文件被暂存再提交,避免将日志、临时文件 等一并提交。

3 3 3.暂存区内容及时清理:如果暂存了错误文件,可通过 git reset HEAD <file> 从暂存区移除,但文件修改仍保留在工作区。

5.版本回退

我们要对版本进行切换,用git reset --hard commitID

  • commitID可以使用git-log 或者git log 查看
  • 如果要查看已经被删除的记录可以输入git reflog ,在尝试的时候可以先clear 清空日志再输入上面那个指令进行查看

示意图如下:

4️⃣分支

分支是什么

分支即就是git log 后的日志里的HEAD -> master 中的master就是分支,示意图如下:

建立分支的目的

使用分支可以把工作主线上分离开来进行重大的bug修改,开发新的功能,以免影响主线开发,通俗点来说就是搞副业的同时不影响主业,每个人的副业会不影响,所以

关于分支的常见命令

1 1 1.查看本地分支:

  • git branch

2 2 2.创建本地分支:

  • git branch 分支名

3 3 3.切换到其他分支:

  • git checkout 分支名

支持切换到一个不存在的分支即为创建并切换:

  • git checkout -b 分支名

4 4 4.合并两个分支(merge)

即一个分支上的提交可以合并到另一分支

  • git merge 分支名称

解决本地代码冲突的问题:

如果两个分支都有一个XXX.txt 文件,而文件里的内容不一样,那么在合并的时候就会有冲突,这样git就会被冲突抛给发号指令的人,有作者来解决该问题,再打开该文件时,会显示:

复制代码
<<<<<<< HEAD
count=1 表示某个分支里的XXX.txt里的内容
=======
count=2 表示另一个分支里的XXX.txt里的内容
>>>>>>> 被合并进来的分支名

在这里只要将count的值统一改为您需要的样子即可,具体过程如下:

复制代码
1.打开冲突文件,删除Git自动生成的冲突标记(<<<、=====、>>>)

2.手动保留需要的代码(保留master代码 / 保留分支代码 / 合并两处代码)

3.修改完成后,执行 git add . 暂存

4.执行 git commit -m "解决分支合并冲突" 提交到仓库,冲突解决

5 5 5.删除分支

注:不能删除当前分支,只能删除其他分支

  • git branch -d b1 表示删除分支时需要做各种检查
  • git branch -D b1 不做任何检查,就直接强制删除

补充:一般来说是-d删除不了的才用-D

分支在开发中使用的原则和流程(了解)

HEAD:指针,始终指向当前正在使用的分支,同一时间仅指向一个分支。

分支规范:master(主分支)→ develop(开发分支)→ feature(功能分支),bug修复从主分支拉取分支,修复完成合并回主分支。

在开发中,一般有以下规范:

  • master(生产)分支

一般来说只有基于该分支的代码才能在电脑服务器里部署。

  • develop(开发) 分支

该分支是从master 创建的分支,一般为开发部门的主要开发分支,就是说如果没有其他并行开发不同期上线要求,都可以用该版本进行开发,在阶段开发完成以后,再合并到master分支上然后部署到服务器上。

  • feature分支

    该分支是从develop创建的分支,一般是同期并行开发,但不同期上线创建的分支,分支上的研发任务完成后再合并到develop分支上。

5️⃣Git远程仓库

一般来说要创立远程仓库,就要借助物联网上的一些代码托管服务来实现,比较常见的有:

  • gitHub 地址是:gitHub ,这是一个面向开源及私有的软件项目的托管平台,因为只支持Git作为唯一 版本库格式进行托管,所以叫做gitHub
  • 码云 地址是: 码云 ,因为它的服务器在国内,是属于国内的代码托管平台,相比于gitHub,码云的网络速度更快
  • GitLab地址是: GitLab ,这是一个基于仓库管理系统的开源项目,它使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于企业,学校等内部网络搭建git私服

在这里以码云为例:

  • 首先先要注册好一个账号

  • git中免密连接远程仓库一般就要SSH公钥配置,这样就可以配置后后续拉取、推送代码无需重复输入账号密码,过程如下:

    1 1 1.生成公钥:ssh-keygen -t rsa(全程回车默认配置)

    2 2 2.查看公钥:cat ~/.ssh/id_rsa.pub

    3 3 3.复制全部公钥内容,粘贴到Gitee/GitHub个人SSH公钥配置

    4 4 4.验证配置:ssh -T git@gitee.com,提示成功即配置完成

具体过程如下:

  • 把本地仓库推到远程仓库,在git输入指令git remote add origin+你的远程仓库地址(origin是默认名字)
  • git remote:查看已关联的远程仓库
  • git branch -vv:查看本地分支与远程分支的绑定关联关系
  • git push origin master:将本地master分支代码推送到远程仓库
  • git push --set-upstream origin master:master:绑定本地与远程master分支,绑定后可直接使用 git push 推送
  • git push -f:强制覆盖远程仓库代码(谨慎使用,易丢失远程代码)

从远程仓库克隆,抓取,拉取

  • git clone 远程仓库SSH地址:克隆远程仓库到本地(首次拉取项目使用,仅一次)
  • git fetch[remote name][branch name]:抓取远程仓库最新代码,不自动合并本地分支, 如果不指定远端名称和分支名,则抓取所有分支
  • git pull[remote name][branch name]:拉取远程代码并自动合并本地分支(等价于 fetch + merge

总结本节重点内容

复制代码
1.将本地修改推送至远程仓库,比如我新建一个.txt,流程如下:
1️⃣.在本地新建一个文件:touch file01.txt
2️⃣.将修改内容加入暂存区并提交至本地仓库,提交的记录内容为:add file01:
git add.
git commit -m 'add file01'
3️⃣.最后将本地的修改同步至远程仓库:
git push origin master
2.将远程仓库的修改拉取至本地
1️⃣.先输入指令,指令为:git pull
2️⃣.再查看日志显示提交记录:git log

6️⃣解决远端代码合并的冲突

  • 冲突发生的场景 : 在同一时间段内,两个用户(设为A和B )修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突 ,示意图如下:

  • 解决办法 :与本地分支冲突解决方式一致:手动修改冲突文件 → 整理代码 → git add . 暂存 → git commit 提交,完成冲突修复。

7️⃣怎么在IDEA里使用Git(实践)

1 1 1.在IDEA里配置git

  • 在编译器里点击 File → Settings,在搜索框里搜索 git,找到 Version Control 选项下面的 Git
  • 点击 Test 按钮,如果能显示 Git 版本号(如 git version 2.42.0),说明 IDEA 已自动识别 Git 路径。
  • 如果没有自动识别,手动选择 Git 安装目录下的 git.exe(Windows)或 /usr/local/bin/git(Mac/Linux)。
  • 配置完成后点击 ApplyOK 保存。

2 2 2.从远程仓库克隆项目

  • IDEA 欢迎界面点击 Get from VCS,或在顶部菜单栏 File → New → Project from Version Control → Git
  • URL 输入框中粘贴远程仓库地址(如 https://gitee.com/meng-yunxiao/git_test.git)。
  • 选择本地存放目录,点击 Clone,IDEA 会自动拉取项目并打开。

3 3 3.日常开发常用操作

  • 提交上传代码

    • 修改代码后,点击左侧 Commit 按钮(或按 Ctrl + K / Cmd + K)。
    • 勾选要提交的文件,填写提交信息。
    • 点击 Commit 仅本地提交,或 Commit and Push 提交并推送。
  • 推送代码到远程

    • 点击顶部菜单 Git → Push(或按 Ctrl + Shift + K / Cmd + Shift + K)。
    • 确认推送目标分支(如 origin/master),点击 Push
  • 拉取远程最新的代码

    • 点击 Git → Pull(或按 Ctrl + T / Cmd + T)。
    • 选择远程分支(如 origin/master),点击 Pull
  • 查看提交历史

    • 右键点击项目根目录 → Git → Show History
    • 或点击底部 Version Control 窗口 → Log 选项卡,查看所有提交记录。
  • 分支的管理

    • 创建分支:

      • 点击 IDEA 右下角当前分支名(如 master),弹出分支管理菜单。
      • 点击 New Branch,输入分支名(如 feature-login),点击 Create
    • 切换分支

      • 点击右下角分支名,在弹出列表中选择要切换的分支,点击 Checkout
    • 合并分支

      • 先切换到目标分支(如 master),点击 Git → Merge Changes

      • 选择要合并的源分支(如 feature-login),点击 Merge

      • 如果有冲突,会弹出冲突解决窗口,解决冲突的方法如下:

        复制代码
        1️⃣. IDEA 会列出所有冲突文件,双击打开某个文件。
        2️⃣. 界面会分三栏:
             左边:你的本地修改(Current)
             中间:合并结果(Result),可以手动编辑
             右边:远程传入的修改(Incoming)
        3️⃣. 点击 >> 或 << 按钮将某处修改应用到结果区。
        4️⃣. 也可以直接在中栏手动删除冲突标记(<<<<、====、>>>>)并保留需要的代码。
        5️⃣. 所有冲突处理完后,点击 `Apply`。
        6️⃣.最后执行 Commit 提交合并结果。
    • 删除分支

      • 点击右下角分支名,选择要删除的分支,点击 Delete

8️⃣.总结一下

核心知识点回顾

模块 核心内容 关键命令/操作
基础命令 版本库初始化、文件状态管理、提交历史查看 git initgit addgit commitgit log
版本回退 任意切换历史版本,找回误删记录 git reset --hard commitIDgit reflog
分支管理 创建、切换、合并、删除分支,并行开发 git branchgit checkoutgit merge
冲突解决 本地冲突与远程冲突的修复流程 手动编辑冲突文件 → git addgit commit
远程仓库 SSH 免密配置、推送/拉取、克隆仓库 git pushgit pullgit clonegit remote
IDEA 集成 Git 可视化操作,图形化解决冲突 菜单栏操作、快捷键

思维导图

相关推荐
攻城狮-申14 分钟前
git本地分支对齐远程分支
前端·git
具身AGI16 分钟前
从演示到作业,物理AI 人类学习路线 的深意
人工智能·学习
MSTcheng.17 分钟前
【Linux】Linux学习第三弹——Linux基本指令2
linux·windows·学习·ubuntu·操作系统
tju新生代魔迷26 分钟前
Verilog HDL学习笔记(三)| 第3章 基本概念(上)——词法约定与数据类型
笔记·学习
tju新生代魔迷1 小时前
Verilog HDL 学习笔记(九)| 第 9 章 实用建模技术
笔记·学习
凯尔萨厮2 小时前
Java学习笔记十三(Stream与Lambda)
笔记·学习
爱三盖浇饭2 小时前
挑战从零开始学习Kafka2: Kafka 常见问题解决方案
学习·kafka
dtq04243 小时前
数据结构 - 线性表 - 双向链表
c语言·数据结构·学习
M78佐菲10 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法