git 常用命令

设置远程仓库地址,就是用origin作为 https://github.com/仓库名字.git 的别名 ,后面用到origin就相当于用这个仓库的地址。你也可以变成其他名字。

复制代码
git remote add origin https://github.com/仓库名字.git

添加所有的文件放到缓存区,此时还没有上传文件到远端:

复制代码
git add .

如果不想所有的文件都上传,可以后面那个.变为修改的文件

复制代码
git add 修改.txt

如果只是暂时不想提交,但想保留修改

复制代码
# 文件回到"已修改但未暂存"状态
git reset

如果有很多文件都要上传,一些大的文件不好上传的就把它忽略了,在.gitignore文件中添加要忽略的文件,直接打开这个文件在最后添加即可。

复制代码
# 打开这个文件
vim .gitignore

我这里就添加了一个文件夹不要上传到远端,添加了之后别忘了保存文件,然后直接正常git add . 就可以了(.gitignore 会自动生效)。

给即将提交的文件做修改说明:

复制代码
git commit -m "这里写修改的解释,防止回退代码的时候不知道回退到哪里"

查看当前分支在哪里

复制代码
git branch

将本地的 master分支推送到远程的 main分支,origin是远端的地址,从一开始就添加绑定好了的

复制代码
git push -u origin master:main

将本地的 "main" 分支代码推送到名为 "origin" 的远程仓库的 "main" 分支, 并建立绑定关系,以后在这个分支上只需输入 "git push" 即可。

复制代码
git push -u origin main

查看哪些文件将被提交

复制代码
git status

查看本地当前分支的提交历史

复制代码
# 查看本地当前分支的提交历史
git log --oneline
# 输出示例:
# d7c8f60 (HEAD -> main) 最新本地提交
# b56ac4d 之前的本地提交
# db4060d 更早的提交

查看远端main分支的提交历史,还记得这个origin嘛,就是远程仓库的地址。

复制代码
git log origin/main --oneline

版本回退

实际例子演示

复制代码
# 查看简洁历史
$ git log --oneline
e4f5g6h (HEAD -> main) 添加支付功能
c3d4e5f 优化用户界面
a1b2c3d 修复登录bug
db4060d 用户注册功能
7890abc 项目初始化

场景1:撤销最近2个提交,前面的包含,后面的不包含

复制代码
# 撤销从"修复登录bug"之后到现在的所有提交
git revert a1b2c3d..HEAD
# 这会依次撤销:"优化用户界面" 和 "添加支付功能"
# 代码回到"修复登录bug"之后的状态

场景2:撤销特定范围

复制代码
# 撤销从"用户注册功能"到"优化用户界面"之间的提交
git revert db4060d..c3d4e5f
# 这会依次撤销:"修复登录bug" 和 "优化用户界面"
# 但不撤销"添加支付功能"
  1. git revert db4060d..HEAD命令已成功开始执行

  2. Git 正在为第一个要 revert 的提交(d7c8f60)生成反向提交

  3. 现在需要您输入提交信息来描述这次 revert 操作

1:使用默认提交信息(推荐)

  1. Ctrl + X (左下角显示为 ^X表示 Ctrl+X)

  2. 会问您是否保存,按 Y(Yes)

  3. 会问您文件名,直接按 Enter(回车)

选项2:自定义提交信息

  1. 在第一行(Revert "修改了..."那一行)可以修改为您想要的描述

  2. 然后按 Ctrl + X ​ → Y ​ → Enter

选项3:取消操作

  1. 删除所有文本(包括默认的那两行),让文件为空

  2. Ctrl + X ​ → Y ​ → Enter

  3. 这将会取消整个 revert 操作

重要提示

  1. 这是正常流程 :每次 git revert一个提交时,Git 都会打开编辑器让您确认提交信息

  2. 可以跳过编辑器:如果您想自动使用默认信息,可以这样:

    复制代码
    git revert --no-edit db4060d..HEAD
相关推荐
vibecoding日记1 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记2 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger3 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思4 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享4 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立4 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible
qq_426003964 天前
git切换当前分支到远程分支
git
ON10N4 天前
100% 纯 Vibe Coding,我是怎么用 AI 撸出一个 VS Code 插件的
git·ai编程·visual studio code