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 文件夹

shell 复制代码
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:手动合并;

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

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

相关推荐
程序员南飞38 分钟前
ps aux | grep smart_webrtc这条指令代表什么意思
java·linux·ubuntu·webrtc
弥琉撒到我42 分钟前
微服务swagger解析部署使用全流程
java·微服务·架构·swagger
一颗花生米。2 小时前
深入理解JavaScript 的原型继承
java·开发语言·javascript·原型模式
问道飞鱼2 小时前
Java基础-单例模式的实现
java·开发语言·单例模式
ok!ko5 小时前
设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)
java·设计模式·原型模式
2402_857589366 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
吾爱星辰6 小时前
Kotlin 处理字符串和正则表达式(二十一)
java·开发语言·jvm·正则表达式·kotlin
哎呦没7 小时前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
编程、小哥哥7 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
IT学长编程8 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统