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
相关推荐
天若有情67311 小时前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
海盗123412 小时前
在群晖NAS上使用Git Server
git
y小花12 小时前
git常用指令
git
华科大胡子12 小时前
开源项目 Git 贡献全流程拆解
git
极地星光12 小时前
工程中:Git 子模块(submodule) vs 直接依赖(源码/库/包管理器)
git
无限进步_14 小时前
【C++&string】大数相乘算法详解:从字符串加法到乘法实现
java·开发语言·c++·git·算法·github·visual studio
无限进步_15 小时前
【C++】验证回文字符串:高效算法详解与优化
java·开发语言·c++·git·算法·github·visual studio
无限进步_18 小时前
【C++】重载、重写和重定义的区别详解
c语言·开发语言·c++·ide·windows·git·github
历程里程碑18 小时前
1 . Git本地操作:版本控制 跨平台协作 仓库核心
java·开发语言·数据结构·c++·git·gitee·github
华科大胡子19 小时前
Git + 云原生
git