介绍
会不会使用Git已经是区别一个程序员是否现代化、有没有参与过大型项目的标志了
基本使用
初始化本地仓库(已有文件夹)
1 | git init |
添加远端仓库
1 | git remote add origin https://github.com/hywing/xxx.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 |
查看当前分支指向(提交记录)
1 | git branch -vv |
账户配置
查看当前的用户名和邮箱
1 | git config --list |
配置全局用户名
1 | git config --global user.name hywing |
配置全局邮箱
1 | git config --global user.email "hywing.sir@qq.com" |
自动化集成
使用脚本自动化提交(这个对Github Pages非常有帮助)
1 | git add . |
开源项目
冲突管理:以解决一次RT-Thread的冲突为例讲解怎么解决开源项目代码冲突问题
① 进入代码仓库所在目录
1 | cd REPOSITORY |
② 合并分支改动
1 | git merge origin develop --no-ff |
③ 查看冲突文件
1 | git status -s |
④ 解决冲突,可以使用文本编辑器手动编辑,一般冲突以<<<<<<< HEAD
开头,以>>>>>>> BRANCH-NAME
结尾,以=======
为分隔符
1 | <<<<<<< HEAD |
⑤ 编辑冲突文件,跟别人冲突的地方解决掉(去掉冲突标志开头、结尾和中间分隔符,现实中最好跟冲突方商量一下)
1 | path: bsp/stm32 |
⑥ 重新提交代码
1 | git add . |
注意
有些开源仓库会有很多子仓库,第一次拉取的时候要把--recursive
参数加上
1 | git clone https://github.com/stephane/libmodbus.git --recursive |
私有仓库的使用(在GitHub开通私有仓库访问权限认证码)
1 | git clone https://私有仓库访问权限认证码@github.com/hywing/modbus-rs485.git |
下载速度慢的时候可以考虑使用GitHub镜像源(bgithub.xyz)
1 | git clone --depth 1 https://bgithub.xyz/MYiR-Dev/myir-imx-linux.git -b develop_6.6.36 |