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

Git 常用指令及其说明

配置相关

# 配置全局用户名
git config --global user.name "YourUsername"

# 配置全局邮箱
git config --global user.email "your.email@example.com"
  • 说明:这两条命令用于设置 Git 全局的用户名和邮箱,在提交代码时,这些信息会被记录在提交历史中,用于标识提交者。

仓库初始化

# 在当前目录初始化一个新的 Git 仓库
git init
  • 说明:执行该命令后,会在当前目录下创建一个 .git 文件夹,这个文件夹包含了 Git 版本控制系统所需的所有文件和子目录,使得当前目录可以被 Git 进行版本控制。

查看状态

# 查看工作区和暂存区的状态
git status
  • 说明:该命令可以显示当前工作区中哪些文件被修改了、哪些文件是新增的(未被 Git 跟踪)、哪些修改已经被添加到暂存区等信息。

文件添加到暂存区

# 将指定文件添加到暂存区
git add file1.txt

# 将所有修改的文件添加到暂存区
git add .
  • 说明git add 命令用于把文件的修改添加到暂存区,准备进行提交。可以指定单个文件,也可以使用 . 来一次性添加所有修改的文件。

提交修改

# 提交暂存区的修改,并添加提交信息
git commit -m "Your commit message"
  • 说明:此命令将暂存区的文件修改永久记录到版本历史中,-m 参数后面跟着的是本次提交的描述信息,用于说明这次提交做了哪些更改。

查看引用记录

# 查看本地仓库的引用记录
git reflog
  • 说明git reflog 会展示 HEAD 的移动历史以及分支的变化情况,即使某些提交已经被删除,也可以通过这个命令找到相关记录。

查看提交日志

# 显示当前分支的提交日志
git log
  • 说明:该命令用于查看当前分支的提交历史,包括每个提交的哈希值、作者、提交日期和提交信息等。

版本回退

# 硬重置到指定版本,丢弃指定版本之后的所有提交
git reset --hard commit_hash
  • 说明git reset --hard 会将当前分支的 HEAD 指针直接移动到指定的提交版本,并且会丢弃该版本之后的所有提交。这是一个不可逆的操作,使用时要谨慎。

分支操作

# 创建新分支
git branch new_branch

# 切换到指定分支
git checkout existing_branch

# 创建并切换到新分支
git checkout -b new_branch

# 查看所有分支
git branch

# 删除指定分支
git branch -d branch_to_delete
  • 说明
    • git branch 用于创建、查看和删除分支。
    • git checkout 用于切换分支,-b 参数可以在创建新分支的同时切换到该分支。

分支合并

# 将指定分支合并到当前分支
git merge branch_to_merge
  • 说明:当需要将一个分支的修改合并到当前分支时,使用 git merge 命令。合并过程中可能会出现冲突,需要手动解决。

暂存更改

# 暂存当前未提交的更改
git stash

# 恢复最近一次暂存的更改
git stash pop

# 查看所有暂存记录
git stash list

# 删除指定的暂存记录
git stash drop stash@{index}
  • 说明
    • git stash 可以将当前未提交的更改保存起来,以便在不提交的情况下切换到其他分支进行工作。
    • git stash pop 用于恢复最近一次暂存的更改。
    • git stash list 可以查看所有的暂存记录。
    • git stash drop 用于删除指定的暂存记录。

查找问题提交

# 开始二分查找
git bisect start

# 标记当前提交为坏提交
git bisect bad

# 标记指定提交为好提交
git bisect good commit_hash

# 结束二分查找
git bisect reset
  • 说明:当项目中出现问题,但不知道是哪个提交引入的时,可以使用 git bisect 进行二分查找。通过标记好的和坏的提交,Git 会自动帮助你缩小问题提交的范围。

标签操作

# 创建轻量级标签
git tag tag_name

# 创建带有注释的标签
git tag -a tag_name -m "Tag message"

# 查看所有标签
git tag

# 删除指定标签
git tag -d tag_name

# 将标签推送到远程仓库
git push origin tag_name
  • 说明
    • 标签通常用于标记项目的重要版本,如发布版本等。
    • 轻量级标签只是一个指向特定提交的引用,而带注释的标签还包含了标签信息和签名。

选择性应用提交

# 应用指定的提交到当前分支
git cherry-pick commit_hash
  • 说明git cherry-pick 可以将另一个分支上的某个特定提交应用到当前分支,而不是合并整个分支。

远程仓库操作

# 添加远程仓库
git remote add origin remote_repository_url

# 查看远程仓库信息
git remote -v

# 从远程仓库拉取最新代码
git pull origin branch_name

# 将本地分支推送到远程仓库
git push origin local_branch:remote_branch
  • 说明
    • git remote add 用于将本地仓库与远程仓库关联起来。
    • git pull 用于从远程仓库拉取最新的代码并合并到本地分支。
    • git push 用于将本地分支的代码推送到远程仓库。

相关文章:

  • FutureTask 和 CompletableFuture
  • 更好用更现代的字模软件
  • 9.【线性代数】—— 线性相关性, 向量空间的基,维数
  • vue 3D 翻页效果
  • Vscode编辑器获取更新远程最新分支
  • 新民主主义革命理论的形成依据
  • AdapterBias
  • Rk3568驱动开发_驱动实现流程以及本质_3
  • P4282--高精度加减,进制
  • Debain12.9安装大模型微调基础环境
  • 数据驱动未来!天合光能与永洪科技携手开启数字化新篇章
  • 网络安全-系统层攻击流程及防御措施
  • [创业之路-323]:初创期企业谨慎多元化策略,要聚焦策略、压强策略、力出一孔、利出一孔。
  • 【ROS2】SLAM入门:gmapping建图、导航测试记录
  • Apache Flink CDC (Change Data Capture) mysql Kafka
  • 智慧家居中的视频监控系统-------1、视频监控
  • 通过恒定带宽服务器调度改进时间敏感网络(TSN)流量整形
  • 【Java 多线程基础 - 上篇】
  • fps动作系统4.1:移动系统
  • nginx代理后502
  • 一周观展|一批重量级考古博物馆开馆:从凌家滩看到孙吴大墓
  • 看展 | 黄永玉新作展,感受赤子般的生命力
  • 菲律宾选举委员会公布中期选举结果,马科斯阵营选情未达预期
  • 国家统计局:2024年城镇单位就业人员工资平稳增长
  • 俄媒:俄乌伊斯坦布尔谈判将于北京时间今天17时30分开始
  • 舱位已排到月底,跨境电商忙补货!美线订单大增面临爆舱,6月运价或翻倍