介绍

会不会使用Git已经是区别一个是否现代化、有没有参与过大型项目的标志了

基本使用

先从远程仓库拉新代码(万事先fetch)

1
git fetch

在当前分支基础上新建一个分支

1
git checkout -b qml

下载远程仓库的更新

1
git pull

查看本地修改了哪些文件

1
git status -s

添加文件到暂存区

1
git add file1 file2 file3

删除不需要的文件

1
git rm -r file dir/

写入提交日志

1
git commit -m "这是一段日志" -a

提交到远程仓库

1
git push -f origin main

提交一个新的分支到远程仓库

1
git push --set-upstream origin qml

缓存修改(工作区和暂存区)

1
git stash push -u xxx

将暂存修改同步回来

1
git stash pop

自动化集成

使用脚本自动化提交(这个对Github Pages非常有帮助)

1
2
3
4
git add .
current_time=$(date "+%Y-%m-%d %H:%M:%S")
git commit -m "$current_time -> docs updated!" -a
git push

开源项目

冲突管理:以解决一次RT-Thread的冲突为例讲解怎么解决开源项目代码冲突问题

① 进入代码仓库所在目录

1
cd REPOSITORY

② 合并分支改动

1
git merge origin develop --no-ff

③ 查看冲突文件

1
git status -s

④ 解决冲突,可以使用文本编辑器手动编辑,一般冲突以<<<<<<< HEAD开头,以>>>>>>> BRANCH-NAME结尾,以=======为分隔符

1
2
3
4
5
6
7
8
9
10
11
12
<<<<<<< HEAD
tag: bsp_stm32h723-st-nucleo
path: bsp/stm32/stm32h723-st-nucleo
owners: 下里巴人(hywing)<hywing.sir@qq.com>

tag: bsp_stm32g030-tiny-board
path: bsp/stm32/stm32g030-tiny-board
owners: 下里巴人(hywing)<hywing.sir@qq.com>
=======
path: bsp/stm32
owners: Liya Huang(wdfk-prog)<1425075683@qq.com>
>>>>>>> BRANCH-NAME

⑤ 编辑冲突文件,跟别人冲突的地方解决掉(去掉冲突标志开头、结尾和中间分隔符,现实中最好跟冲突方商量一下)

1
2
3
4
5
6
7
8
9
10
path: bsp/stm32
owners: Liya Huang(wdfk-prog)<1425075683@qq.com>

tag: bsp_stm32h723-st-nucleo
path: bsp/stm32/stm32h723-st-nucleo
owners: 下里巴人(hywing)<hywing.sir@qq.com>

tag: bsp_stm32g030-tiny-board
path: bsp/stm32/stm32g030-tiny-board
owners: 下里巴人(hywing)<hywing.sir@qq.com>

⑥ 重新提交代码

1
2
3
git add .
git commit -m "Resolve merge conflict"
git push maintainer

© 2025 hywing 使用 Stellar 创建
总访问 113701 次 | 本页访问 326