完整的将本地工程上传到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`查看当前状态
相关推荐
dulu~dulu6 小时前
英语完形填空题型总结
笔记·学习·英语完形填空·自用
微露清风6 小时前
系统性学习C++-第二十四讲-智能指针的使用及其原理
java·c++·学习
Aliex_git6 小时前
GitHub Copilot 使用笔记
笔记·学习·github·copilot·ai编程
vgbhfive16 小时前
国内及海外现金贷业务分析
经验分享
BingoXXZ6 小时前
20260114Linux学习笔记
linux·服务器·笔记·学习
dxnb227 小时前
Datawhale26年1月组队学习:Agentic AI+Task2反思设计模式
学习·设计模式
好奇龙猫7 小时前
【人工智能学习-AI入试相关题目练习-第五次】
人工智能·学习
charlie1145141917 小时前
输入法处理杂谈——Windows 下的 IMM32 输入法处理机制和Chrome如何桥接TSF输入法
开发语言·chrome·windows·学习·输入法
星火开发设计7 小时前
表达式与语句:C++ 程序的执行逻辑基础
java·开发语言·c++·学习·知识·表达式
纵有疾風起7 小时前
【Linux 系统开发】基础开发工具详解:软件包管理器、编辑器。编译器开发实战
linux·服务器·开发语言·经验分享·bash·shell