完整的将本地工程上传到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 "[email protected]"

# 如果使用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`查看当前状态
相关推荐
代码小将7 分钟前
java中static学习笔记
java·笔记·学习
虾球xz14 分钟前
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
开发语言·c++·物联网·学习
郭菁菁26 分钟前
【CBAP50技术手册】#39 Roles and Permissions Matrix(角色与权限矩阵):业务分析师的“秩序守护器”
经验分享·产品经理·需求分析·业务分析·ba
Y3174291 小时前
python Day46 学习(日志Day15复习)
python·学习·机器学习
学不会就看1 小时前
selenium学习实战【Python爬虫】
python·学习·selenium
CIb0la2 小时前
Ai自动补全编程工具:llama vscode
运维·开发语言·学习·测试工具·程序人生
HelloGitHub2 小时前
3 个超火的开源项目「GitHub 热点速览」
开源·github
2301_804774492 小时前
回溯算法学习
学习
~Yogi2 小时前
今日学习:工程问题(场景题)
android·学习
JinSo2 小时前
create-easy-editor —— 快速搭建你的可视化编辑器
前端·前端框架·github