惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
量子位
雷峰网
雷峰网
宝玉的分享
宝玉的分享
V
Visual Studio Blog
博客园_首页
小众软件
小众软件
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
SegmentFault 最新的问题
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学

繁星点点

最新轻量级龙虾部署教程 通过netboot.xyz重装系统 giffgaff卡保号教程 Llinux系统中全新透明代理方案(可代理所有出站流量) tailscale开启子网路由常见的坑 OpenWrt固件编译 解决UFW和Docker的问题 使用PGP的非对称算法加密文件 NSSM工具把任意exe程序注册为Windows后台服务 轻量级简约端口转发rinetd 安卓IDE的安装和使用 IP信息查询网站汇总 热点共享代理教程 SSH使用密钥认证登录详细解释 Debian系统公网IP出口切换指南,适用多IP服务器 Windows系统安装Scoop包管理器 安卓Flutter开发学习笔记 使用手机搭建节点服务端 关于github提交记录泄露真实邮箱的处理办法 anytls协议部署教程 caddy给域名用上ECH加密 通过gitlab流水线自动备份仓库 通过CF-Workers代理访问网站 低配机器使用alpine系统跑docker 端口敲门教程 3x-ui面板通过api管理示例 nmap端口扫描 数据库常用命令 snap和winget包管理器 😩😩😩学不完,根本学不完😩😩😩
Git推送GitHub常用命令
2025-04-08 · via 繁星点点

先在github创建一个仓库,然后本地CD到项目目录

初始化本地仓库

git init

创建并切换到main分支

git checkout -b main

确保本地分支是main

git checkout main

添加并提交新的更改

git add .
git commit -m "add"

关联远程仓库

git remote add origin https://github.com/your-username/your-repo.git

推送到仓库

git push origin main

main为分支名

输入用户名和key密钥即可推送完成

操作完成后清除Git存储凭据

git config --global --unset credential.helper

项目添加子模块

ddns-go 为例,项目根目录执行。

git submodule add https://github.com/jeessy2/ddns-go.git
git commit -m "添加子模块"

然后提交并推送即可

更新所有子模块

项目根目录执行

git submodule update --remote --merge

然后正常提交

git add .
git commit -m "更新子模块"
git push

删除子模块

git submodule deinit -f ddns-go
git rm -f ddns-go
rm -rf .git/modules/ddns-go
rm -rf ddns-go
git commit -m "删除子模块"

锁定子模块到某个提交

cd ddns-go
git checkout <commit-hash>
cd ..
git add ddns-go
git commit -m "锁定子模块版本"

🎈同步上游仓库某一个提交

1:获取上游更新

git fetch upstream

合并上游所有更新git merge upstream/main main为本地分支

2:确认上游仓库中是否包含目标提交

git branch -r --contains 提交哈希

3:使用 -m 选项进行同步指定的提交

git cherry-pick -m 1 提交哈希

这里的-m 1表示选择合并的提交中的第一个父提交的更改。

如果不是合并的提交则去掉-m 1

多个提交哈希用空格隔开

4:(可选)如果有冲突则找到冲突文件修改

标记所有冲突已解决

git add .

继续之前因冲突而中止的提交

git cherry-pick --continue

5:然后就可以推送到远程仓库了

本地dev分支推送到远程dev分支

git push origin refs/heads/dev:refs/heads/dev

(可选)放弃提交

git cherry-pick --abort

🎈合并有冲突的请求

获取全部请求

git fetch origin 'refs/pull/*/head:refs/pull/origin/*'

切换到主分支

git checkout main

合并指定的请求(1为#后面的编号)

git merge refs/pull/origin/1

查看冲突

git status

将显示冲突的文件用vim打开,删除你不要的代码然后保存文件,或者vscode可视化选择。

标记所有冲突已解决

git add .

完成合并

git commit -m "合并分支1"

推送到main分支

git push origin main

🎈清除所有提交历史

# 删除 Git 版本管理
rm -rf .git

# 重新初始化 Git
git init

# 创建并切换分支(可忽略)
git checkout -b main

# 添加所有文件
git add .

# 提交所有文件
git commit -m "update"

# 重新关联仓库
git remote add origin https://github.com/your-username/your-repo.git

# 强制推送覆盖远程历史
git push --force origin main

🎈切换分支

# 同步远程最新信息和分支
git fetch origin

# 本地切换到 dev 分支
git switch dev

Git旧版本需要加上跟踪远程分支git switch -c dev --track origin/dev

🎈回滚

执行回滚操作后无法恢复

回滚到上一次提交

命令结尾的数字代表前几次

git reset --hard HEAD~1

强制推送

git push origin main --force

或者回滚到指定提交

6038e0a是提交哈希值的前七位

git reset --hard 6038e0a

win系统更改已登录的账户

控制面板 \ 用户帐户 \ 凭据管理器

选择Windows凭据,找到github.com域名相关的凭据,然后编辑或者删除。

配置提交用户

# 全局配置
git config --global user.name "sky22333"
git config --global user.email "[email protected]"

# 查看
git config --list
git config --global http.proxy http://127.0.0.1:10808
git config --global https.proxy http://127.0.0.1:10808

默认会配置在C:\Users\用户名\.gitconfig文件里