GIT详解

目录

[一,Git 核心流程](#一,Git 核心流程)

二,常用命令

1,获取GIt仓库

2,本地仓库常用命令

3,远程仓库常用命令

4,分支操作命令

三,常见问题

1,如何连接远程仓库(Gitee为列子)

使用HTTPS方式

2,推送命令的时候遇到冲突怎么解决


Git 的核心其实就一句话:它是管理文件"版本"的工具,通过三个区域来协作。

一,Git 核心流程

写代码(工作区) ➔ git add(暂存区) ➔ git commit(本地存档) ➔ git push(上传云端)

1,工作区

  • 是什么:就是你平时写代码的文件夹,你能看到的文件。
  • 状态:你在 App.vue 里敲了一行代码,保存了,这就在工作区。

2,暂存区

  • 是什么:一个"临时中转站",准备要提交的文件先放这里。
  • 作用:让你可以挑挑拣拣。比如你改了 3 个文件,但只想提交其中 1 个,就可以只把这 1 个放进暂存区。

3,本地仓库

  • 是什么:Git 真正保存历史版本的地方(那个隐藏的 .git 文件夹)。
  • 作用:一旦提交到这里,你就拥有了一个"存档点",随时可以回退。

二,常用命令

1,获取GIt仓库

(1)从本地初始化:进入一个空目录,执行git init

(2)从远程仓库克隆:进入一个空目录,执行git clone 远程仓库地址

2,本地仓库常用命令
命令 说明 常用参数/示例
git status 查看当前仓库的状态(哪些文件修改了,哪些在暂存区) git status -s (简洁模式)
git add 将文件内容添加到暂存区 git add . (添加所有修改) git add <文件名> (添加指定文件)
git commit 将暂存区的内容提交到本地仓库 git commit -m "这里是提交备注" git commit -am "备注" (跳过add,直接提交已跟踪文件)
git log 查看提交历史记录 git log --oneline (单行显示,最常用) git log --graph (图形化显示分支)
git diff 查看文件具体的修改差异(还没add之前的对比) git diff <文件名>
3,远程仓库常用命令
命令 说明 常用参数/示例
git remote 管理远程仓库地址 git remote -v (查看远程地址) git remote add origin <url> (添加地址)
git pull 从远程拉取代码并合并到本地 git pull origin master git pull --rebase (变基拉取,保持线性历史)
git push 将本地代码推送到远程仓库 git push origin master git push -u origin master (第一次推送时加-u建立关联)
git fetch 仅从远程下载最新代码,但不自动合并 git fetch origin
git clone 克隆远程仓库到本地 git clone <url>
4,分支操作命令
命令 说明 常用参数/示例
git branch 查看、创建或删除分支 git branch (查看本地分支) git branch dev (创建dev分支) git branch -d dev (删除dev分支)
git checkout 切换分支 git checkout dev (切换到dev) git checkout -b dev (创建并切换到dev)
git merge 合并分支 git merge dev (把dev分支合并到当前分支)
git stash 暂存当前工作现场(还没写完的代码先存起来) git stash (存起来) git stash pop (恢复现场)

三,常见问题

1,如何连接远程仓库(Gitee为列子)
使用HTTPS方式

(1)获取仓库地址,关联仓库

复制代码
git remote add origin 自己的url

注意!!!!!

这里为什么没有使用git clone

特性 git clone ... git remote add ...
核心动作 下载 (复制远程到本地) 关联 (建立连接)
是否创建文件夹 是 (会自动创建项目文件夹) 否 (必须在已有的文件夹内执行)
是否下载代码 是 (所有历史代码都会下来) 否 (只是存了个地址)
典型场景 项目刚开始,我要把别人的代码拿下来跑 我自己写了代码,我要把它推送到远程去
后续操作 直接进入文件夹开始干活 需要接着做 git push

(2)第一次 拉取需要验证登录,输入gitee的用户名和密码即可。

2,推送命令的时候遇到冲突怎么解决

原因: 远程仓库的代码和本地代码修改了同一个文件的同一行,Git 无法自动合并

解决步骤:

  1. 拉取代码:先执行 git pull,Git 会提示冲突文件。
  2. 手动解决:打开冲突文件,找到 <<<<<<<, =======, >>>>>>> 标记。选择保留谁的代码,解决冲突
  3. 重新添加:修改完后,执行 git add <冲突文件名>,添加到暂存区
  4. 重新提交:执行 git commit -m "解决冲突"
  5. 再次推送:执行 git push
相关推荐
NE_STOP6 小时前
Docker--Docker Swarm集群
java
两年半的个人练习生^_^6 小时前
JMM 进阶:彻底理解 CAS 实现原理
java·开发语言
wuminyu6 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
华山沦贱6 小时前
open62541 V1.5.4版对C++ Builder支持的bug
笔记
W_LuYi1856 小时前
手撸极简zkEVM验证器:RISC-V电路实践
java·risc-v
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题 第102题】【并发篇】第2题:volatile 能否保证线程安全?
java·安全·面试
KobeSacre7 小时前
JUC 概述
java·开发语言
稷下元歌7 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
逸模7 小时前
AI+BIM 重构连锁公装新范式 逸模打造数字化营建核心底座
大数据·人工智能·笔记·其他·信息可视化·重构
小bo波7 小时前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+