完整的将本地工程上传到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`查看当前状态
相关推荐
Metaphor6927 分钟前
Java 高效处理 Word 文档:查找并替换文本的全面指南
java·经验分享·word
wanzhong23331 小时前
ArcGIS学习-20 实战-地形研究
学习
wanzhong23331 小时前
ArcGIS学习-20 实战-县域水文分析
学习·arcgis
小马学嵌入式~1 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
索迪迈科技1 小时前
java后端工程师进修ing(研一版 || day40)
java·开发语言·学习·算法
武文斌772 小时前
arm启动代码总结
arm开发·嵌入式硬件·学习
icebreaker3 小时前
tailwindcss 究竟比 unocss 快多少?
前端·css·github
我怕是好3 小时前
学习stm32 蓝牙
stm32·嵌入式硬件·学习
索迪迈科技3 小时前
STM32F103C8T6开发板入门学习——点亮LED灯2
stm32·嵌入式硬件·学习
Learn Beyond Limits4 小时前
The learning process of Decision Tree Model|决策树模型学习过程
人工智能·深度学习·神经网络·学习·决策树·机器学习·ai