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

【工具】Git 操作大全

文章目录

    • 1. Git 基础操作
      • 1.1 初始化 Git 仓库
      • 1.2 克隆现有仓库
      • 1.3 配置 Git 用户信息
      • 1.4 查看 Git 配置信息
    • 2. 文件操作
      • 2.1 查看文件状态
      • 2.2 添加文件到暂存区
      • 2.3 提交文件到本地仓库
      • 2.4 查看提交历史
      • 2.5 回退到上一个提交
    • 3. 分支操作
      • 3.1 创建新分支
      • 3.2 切换分支
      • 3.3 查看所有分支
      • 3.4 删除本地分支
      • 3.5 合并分支
      • 3.6 解决合并冲突
    • 4. 远程操作
      • 4.1 添加远程仓库
      • 4.2 查看远程仓库信息
      • 4.3 拉取远程仓库更新
      • 4.4 推送代码到远程仓库
      • 4.5 删除远程分支
      • 4.6 拉取并合并远程分支
    • 5. 标签操作
      • 5.1 创建标签
      • 5.2 查看标签
      • 5.3 推送标签到远程仓库
      • 5.4 删除标签
    • 6. Git 流程与工作流
      • 6.1 使用 Git Flow 工作流
      • 6.2 基本的 Git Flow 操作
    • 7. 进阶操作
      • 7.1 使用 Git Rebase
      • 7.2 Git Stash
      • 7.3 检查文件的修改记录
    • 8. Git 常见问题与解决
      • 8.1 如何取消未提交的更改?
      • 8.2 如何强制推送?
      • 8.3 如何重命名本地分支?


1. Git 基础操作

1.1 初始化 Git 仓库

在一个空目录中初始化一个新的 Git 仓库:

git init

1.2 克隆现有仓库

复制一个已经存在的远程仓库

git clone https://github.com/yourusername/yourrepository.git

1.3 配置 Git 用户信息

在本地使用 Git 前,需要配置用户名和邮箱,这将与提交记录关联:

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

1.4 查看 Git 配置信息

要查看当前的 Git 配置信息,可以使用以下命令:

git config --list

2. 文件操作

2.1 查看文件状态

查看工作区和暂存区的文件状态:

git status

2.2 添加文件到暂存区

将修改后的文件添加到 Git 暂存区:

git add <file_name>

要添加所有修改过的文件,可以使用:

git add .

2.3 提交文件到本地仓库

提交文件时,需要写明提交信息,描述这次提交的更改:

git commit -m "Commit message"

2.4 查看提交历史

查看提交历史记录:

git log

使用 --oneline 可以简化显示:

git log --oneline

2.5 回退到上一个提交

如果想撤销上一次的提交,并将文件恢复到暂存区:

git reset --soft HEAD~1

如果想彻底撤销上一次的提交并恢复工作区文件:

git reset --hard HEAD~1

3. 分支操作

3.1 创建新分支

创建一个新分支并切换到该分支:

git checkout -b new-branch

3.2 切换分支

切换到已有的分支:

git checkout branch-name

3.3 查看所有分支

查看当前仓库的所有分支:

git branch

3.4 删除本地分支

删除本地分支:

git branch -d branch-name

如果分支尚未合并,你可以强制删除:

git branch -D branch-name

3.5 合并分支

将指定分支的内容合并到当前分支:

git merge branch-name

3.6 解决合并冲突

合并时可能会遇到冲突,Git 会标记冲突的文件,你需要手动编辑文件解决冲突,编辑后使用:

git add conflicted-file
git commit -m "Resolve merge conflict"

4. 远程操作

4.1 添加远程仓库

将远程仓库与本地仓库关联:

git remote add origin https://github.com/yourusername/yourrepository.git

4.2 查看远程仓库信息

查看当前配置的远程仓库信息:

git remote -v

4.3 拉取远程仓库更新

从远程仓库拉取最新代码,并自动合并:

git pull origin branch-name

4.4 推送代码到远程仓库

将本地的更改推送到远程仓库:

git push origin branch-name

4.5 删除远程分支

删除远程仓库中的分支:

git push origin --delete branch-name

4.6 拉取并合并远程分支

如果你要拉取并合并远程分支到当前分支:

git fetch origin
git merge origin/branch-name

5. 标签操作

5.1 创建标签

创建一个新的标签(例如:v1.0):

git tag v1.0

5.2 查看标签

查看所有标签:

git tag

5.3 推送标签到远程仓库

将本地标签推送到远程仓库:

git push origin v1.0

5.4 删除标签

删除本地标签:

git tag -d v1.0

删除远程标签:

git push origin --delete tag v1.0

6. Git 流程与工作流

6.1 使用 Git Flow 工作流

Git Flow 是一种常见的 Git 分支管理工作流,分为以下几种分支类型:

  • master:稳定版,始终可部署。
  • develop:开发版,包含即将发布的功能。
  • feature/:功能开发分支。
  • release/:发布分支,准备生产环境部署。
  • hotfix/:修复分支,用于生产环境问题的修复。

6.2 基本的 Git Flow 操作

初始化 Git Flow(只需执行一次):

git flow init

开始新功能开发:

git flow feature start new-feature

结束功能开发并合并到 develop

git flow feature finish new-feature

创建发布分支:

git flow release start 1.0

发布并合并到 masterdevelop

git flow release finish 1.0

修复生产环境 bug:

git flow hotfix start fix-bug

结束并合并到 masterdevelop

git flow hotfix finish fix-bug

7. 进阶操作

7.1 使用 Git Rebase

rebase 可以将分支的修改历史重新应用在另一个分支上,常用于保持项目历史记录的整洁。

git rebase master

7.2 Git Stash

git stash 可以暂存当前工作区的更改,以便切换到其他分支而不丢失修改:

git stash

恢复暂存的更改:

git stash pop

7.3 检查文件的修改记录

查看文件的修改历史:

git log -- <file_name>

查看文件的每次修改:

git blame <file_name>

8. Git 常见问题与解决

8.1 如何取消未提交的更改?

如果你在工作区修改了文件,但还没有提交,可以使用以下命令取消修改:

git checkout -- <file_name>

8.2 如何强制推送?

如果你需要强制推送本地分支到远程仓库(如覆盖远程分支),可以使用:

git push -f origin branch-name

8.3 如何重命名本地分支?

如果你想重命名当前分支,可以使用:

git branch -m new-branch-name

如果想重命名其他分支:

git branch -m old-branch-name new-branch-name

http://www.kler.cn/a/440994.html

相关文章:

  • 6.3.1 MR实战:计算总分与平均分
  • Redis - 位置检索 Geolocation
  • 【JavaWeb后端学习笔记】Spring Task实现定时任务处理
  • C#-Blazor-在线读取测序ABI文件并绘制峰图
  • java乱序执行实验
  • Java——网络编程(下)
  • IOS学习路线图
  • 【数据库系列】PostgreSQL 数据库连接
  • 【Unity踩坑】Unity生成iOS的XCode项目时提示错误:xcrun: error: SDK “iphoneos“ cannot be located
  • NX系列-使用 `nmcli` 命令创建 Wi-Fi 热点并设置固定 IP 地址
  • Qt 使用modbus协议
  • MySQL通过binlog日志进行数据恢复
  • 国标GB28181-2022平台EasyGBS:双网口的网络硬盘录像机怎么设置IP地址以及录像机怎么添加不同网段的摄像机?
  • docker 搭建在线聊天应用
  • QT实战经验总结 连载中
  • 乐优购物商城设计与实现
  • 华为ensp--BGP自动路由聚合
  • STM32 HAL库 + LM2904运算放大器 + ADC + 4-20ma液位传感器:电路设计及代码实现
  • 【功能安全】硬件集成和验证
  • 深入网络安全:从理论到实践的探索