当前位置: 首页 > news >正文

Git 操作以及Git 常见问题

Git 操作

git 教程:https://www.runoob.com/git/git-tutorial.html

基本概念

工作区:克隆项目到本地后,项目所在的文件夹;
暂存区:从工作区添加上来的变更(新增,修改,删除)的文件执行 git add 命令后,将工作区的文件添加到暂存区;
本地仓库:用于存储本地工作区和暂存区提交上来的变更(新增,修改,删除)文件,即暂存区的文件执行 git commit 操作后,将变更的文件提交到本地仓库;
远程仓库:搭建在服务器上的 git 远程仓库,执行 git push origin 分支名称 后,将本地仓库中的变更推送到远程仓库;

基本操作

  1. 克隆代码

git clone

  1. 初始化本地仓库

git init

  1. 添加当前文件到暂存区

git add .

  1. 本地设置远程仓库

git remote add origin [url]

  1. 拉取代码

git pull origin 远程分支名:本地分支名

  1. 提交到远程仓库

git push origin 远程分支名:本地分支名

  1. 查看当前分支

git branch

  1. 查看仓库状态,文件变更信息

git status

  1. 查看历史提交记录

git log

  1. 查看历史提交记录,显示变更的文件信息

git log --stat

  1. 搜索历史提交记录

git log -S [keyword]

  1. 显示工作区和暂存区的区别

git diff
git diff HEAD 显示与最新commit之间的区别

  1. 显示某次提交的详情

git show [commitId]

版本操作

git resert

  1. 查看提交历史

git log

  1. 回退到上一个版本

git reset --hard

  1. 回退到指定版本

git reset --hard commitId

git reset 常见的几种模式

soft:将 head 指向指定的提交,工作区和暂存区的内容不会改变
mixed:默认模式,将 head 指向指定的提交,暂存区的内容随之改变,而工作区的内容不会改变
hard:将 head 指向指定的提交,暂存区和工作区都会改变

git revert
适用场景:如果想撤销之前的某一版本,但是又想保留该目标版本后面的其他版本

  1. 查看历史提交

git log

  1. 撤销提交

git revert commit_id
revert 是默认提交的,但是 git revert | --no-commit [commit-id],–no-commit 选项不会自动提交需要手动提交

Git 命令 reset 和 revert 的区别

文件操作

  1. 添加指定文件到暂存区

git add [file1] [file2] …

  1. 添加指定目录到暂存区,包括子目录

git add [dir]

  1. 添加所有文件到暂存区

git add .

  1. 删除工作区文件,并将这次删除加入到暂存区

git rm [file1] [file2]

  1. 停止追踪指定文件,该文件会保留在工作区

git rm --cached [file]

  1. 文件已经添加到暂存区,强制删除文件

git rm -f [file]

  1. 删除整个目录下的所有子目录和文件

git rm -r [dir]

分支操作

  1. 切换分支

git checkout [分支名]

  1. 合并分支

git merge [分支名]

  1. 创建并切换分支

git checkout -b [分支名]

  1. 创建分支

git branch [分支名]

  1. 删除分支

git branch -d [分支名]

标签操作

  1. 查看标签

git tag

  1. 附注标签

git tag -a [标签名] -m “标签信息” [提交ID]

  1. 指向最新的提交

git tag -a v1.0.0 -m “Release version 1.0.0” HEAD

  1. 提交标签

git push origin [标签名]

  1. 一次性推送所有标签

git push origin --tags

  1. 轻量标签

git tag [标签名] [提交ID]

  1. 创建一个指向最新提交的轻量标签

git tag v1.0.0

远程操作

  1. 将远程的全部更新拉取到本地

git fetch <远程主机名>

  1. 拉取指定分支的更新

git fetch <远程主机名> <分支名>

  1. 将远程主机的某个分支的更新取回,并与本地指定的分支合并

git pull <远程主机名> <远程分支名>:<本地分支名>

管理远程仓库

  1. 列出当前仓库配置的远程仓库

git remote

  1. 列出当前仓库配置的远程仓库,并显示 URL

git remote -v

  1. 添加远程仓库,指定一个远程仓库的名称和 URL

git remote add <远程主机名>

  1. 从当前仓库中删除指定的远程仓库

git remote remove <远程主机名>

  1. 将已配置的远程仓库重命名

git remote rename <old_name> <new_name>

  1. 修改远程仓库的 URL

git remote set-url <远程主机名>

  1. 显示远程仓库详细信息,包括 URL 和跟踪分支

git remote show <远程主机名>

其他问题

如何删除多于的 .idea 文件夹

git rm --cache -r .idea
git commit -m "fix:移除.idea";
git push origni master

git fetch 与 git pull 的区别

git fetch:将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本地分支中;
git pull:则是将远程主机的最新内容拉下来后直接合并,相当于 git fetch + git merge,此时可能会产生冲突,需要手动解决;

git 迁移(从gitee迁移到github上)

  1. 在 github 上创建一个项目
  2. 把 gitee 上的仓库下载到本地

git clone https://gitee.com/EzreaLwj/ezreal-chatgpt-data.git

  1. 移除gitee远端,不移除也可以,但是不能也叫 origin

git remote remove origin

  1. 添加 github 远端

git remote add origin https://github.com/EzreaLwj/ezreal-chatgpt-data.git

  1. 推送到 github 的 master,如果有多个分支就需要一个一个地推

git push -u origin master

IDEA 解决 git 冲突

当发生冲突时,会弹出解决冲突的提示框,共有三个按钮:
accept yours:以你当前的分支为标准;
accept theirs:以他人的分支为标准(合并过来的分支);
merge:手动合并;

点击手动合并后,会出现三个框,最左边的框是你本地的分支,最后边的框是他人的分支(合并过来的分支),中间的框是解决冲突后的最终版本。

每次解决完冲突后,都要点击启动项目,看看能不能将项目跑起来。

http://www.lryc.cn/news/301807.html

相关文章:

  • 如何学习和规划类似ChatGPT这种人工智能(AI)相关技术
  • 4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江
  • [力扣 Hot100]Day29 删除链表的倒数第 N 个结点
  • 探索设计模式的魅力:掌握命令模式-解锁软件设计的‘遥控器’
  • LNMP搭建discuz论坛
  • 257.【华为OD机试真题】幼儿园篮球游戏(贪心算法-JavaPythonC++JS实现)
  • [计算机网络]深度学习传输层TCP协议
  • 动态头部:统一目标检测头部与注意力
  • 【状态估计】深度传感器与深度估计算法(1/3)
  • ClickHouse从入门到精通(高级)
  • 什么是Docker的容器编排工具,它们之间有何不同?
  • qml之Control类型布局讲解,padding属性和Inset属性细讲
  • 【Jvm】性能调优(拓展)Jprofiler如何监控和解决死锁、内存泄露问题
  • 运行错误(竞赛遇到的问题)
  • nodename nor servname provided, or not known
  • 前端vue金额用逗号分隔
  • vulvhub-----Hacker-KID靶机
  • 遨博I20协作臂关节逆解组Matlab可视化
  • 力扣题目训练(15)
  • PCB差模辐射是如何产生的
  • 车载诊断协议DoIP系列 —— 协议中术语解释和定义
  • 【退役之重学前端】关于在控制台得到undefined的事
  • 指数和估计六大问题
  • 【软件相关】基于Alist挂载云盘到本地文件资源管理器
  • Java多线程系列——锁
  • 蓝牙BLE学习-GAP
  • 算法训练营day28(补), 贪心算法2
  • Vue核心基础4:绑定样式、条件渲染、列表渲染
  • go-zero读取mysql部分字段
  • 反转一个单链表