完整的将本地工程上传到GitHub的步骤+常用的Git更新和撤回命令

完整的将本地工程上传到GitHub的步骤

bash 复制代码
以下是完整的将本地工程上传到GitHub的步骤:

### 1. 初始化本地仓库
```bash
# 进入项目目录
cd your_project_path

# 初始化git仓库
git init
```

### 2. 添加.gitignore文件(可选但推荐)
```bash
# 在项目根目录创建.gitignore文件,添加不需要追踪的文件类型
# 对于Keil项目,典型的.gitignore内容:
*.uvguix.*
*.uvoptx
*.scvd
*.uvprojx
Objects/
Listings/
*.o
*.d
*.crf
*.htm
*.dep
*.map
*.bak
*.axf
*.hex
*.bin
```

### 3. 添加文件到暂存区
```bash
# 添加所有文件
git add .

# 或者选择性添加文件
git add *.c *.h
```

### 4. 提交到本地仓库
```bash
git commit -m "Initial commit: 项目描述"
```

### 5. 链接远程仓库
```bash
# 添加远程仓库(使用您的GitHub仓库URL)
git remote add origin https://github.com/username/repository.git

# 验证远程仓库
git remote -v
```

### 6. 推送到远程仓库
```bash
# 首次推送使用-u参数
git push -u origin master
```

### 完整示例(以您的仓库为例):
```bash
# 1. 进入项目目录
cd E:\7788\25Study\24_11PPTClass\MCUproject\IoT_Syy

# 2. 初始化git仓库
git init

# 3. 创建并编辑.gitignore(可选)
echo "*.uvguix.*" > .gitignore
echo "Objects/" >> .gitignore
echo "Listings/" >> .gitignore

# 4. 添加文件
git add .

# 5. 提交更改
git commit -m "Initial commit: STM32 IoT project"

# 6. 添加远程仓库
git remote add origin https://github.com/Tully-L/IoT_Syy.git

# 7. 推送到GitHub
git push -u origin master
```

### 后续更新操作
```bash
# 1. 查看状态
git status

# 2. 添加修改
git add .

# 3. 提交修改
git commit -m "更新说明:例如添加新功能xxx"

# 4. 推送到远程
git push origin master
```

### 如果遇到问题
```bash
# 如果push失败,先拉取远程更新
git pull origin master

# 如果有冲突,解决冲突后
git add .
git commit -m "解决冲突"
git push origin master

# 如果想放弃本地修改
git fetch origin
git reset --hard origin/master
```

### 首次使用Git需要配置
```bash
# 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 如果使用HTTPS,可能需要配置凭证存储
git config --global credential.helper store
```

注意事项:
1. 确保GitHub仓库已创建
2. 第一次使用需要进行身份验证
3. 建议使用.gitignore过滤不必要的文件
4. 重要操作前最好先备份
5. 提交时写清晰的提交信息,便于后期维护

常用的Git更新和撤回命令

bash 复制代码
以下是常用的Git更新和撤回命令:

### 更新操作
```bash
# 1. 查看当前状态
git status

# 2. 添加修改的文件
git add .                    # 添加所有更改
git add filename.c           # 添加特定文件

# 3. 提交更改
git commit -m "更新说明"

# 4. 推送到远程仓库
git push origin master       # 推送到master分支
```

### 撤回操作
```bash
# 1. 撤销工作区的修改(未add)
git checkout -- filename.c   # 撤销特定文件的修改
git checkout .              # 撤销所有修改

# 2. 撤销暂存区的修改(已add未commit)
git reset HEAD filename.c    # 撤销特定文件
git reset HEAD .            # 撤销所有文件

# 3. 撤销提交(已commit未push)
git reset --soft HEAD^      # 撤销上一次commit,保留修改
git reset --hard HEAD^      # 撤销上一次commit,删除修改

# 4. 撤销已推送的提交(已push)
git revert HEAD             # 创建一个新的提交来撤销上一次提交
git push origin master      # 推送撤销操作
```

### 其他常用命令
```bash
# 查看提交历史
git log

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

# 从远程仓库更新本地代码
git pull origin master

# 查看分支
git branch

# 创建并切换分支
git checkout -b new-branch

# 切换分支
git checkout master
```

注意事项:
1. 使用`reset --hard`要特别小心,它会删除所有未提交的修改
2. 建议在进行重要操作前先备份代码
3. 如果不确定操作结果,可以先用`git status`查看当前状态
相关推荐
天衍四九1 天前
Git从0到实战(四):冲突解决与版本回退 —— 别怕,出错了也能救
github
大刚测试开发实战1 天前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
uhakadotcom2 天前
在python 的 工程化架构中 ,什么是 薄包装器层?
后端·面试·github
Avan_菜菜2 天前
AI 能写代码了,为什么我反而开始要求它先写文档?
前端·github·ai编程
逛逛GitHub3 天前
这个爆红的 GitHub 项目让 token 直接省 60–95%。
github
iccb10133 天前
5年,一个程序员是如何把私有化在线客服系统做到第一名的
前端·后端·github
蝎子莱莱爱打怪3 天前
AI Agent 相关知识扫盲:16 个概念+11张图+38个开源项目推荐
人工智能·github·agent
用户317723070363 天前
Pydub:用 Python 处理音频,不写废话
github
深海鱼在掘金3 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
张居邪3 天前
GitHub Actions + 阿里云 OSS:OIDC 免密同步构建产物
后端·github