源码管理与协作


SVN

Git

相关命令操作

  • 配置
    git config --global user.email "xxxx"
    git config --global user.name "xxxx"
    # 配置密钥
    ssh-keygen -o -t rsa -b 4096 -C "xxxx@foxmail.com"
    ```  
    + 操作
    ```shell
    cd xxx
    git init
    git add .
    git commit -m 'first commit'
    git remote add origin http://xxxx
    git push -u origin master
    
    #会提示输入用户名密码或使用ssh方式,添加SSH-Key,免密登陆
  • 其他
    #不同操作系统 回车换行处理
    git config --global core.autocrlf false

    忽略某些文件

    .gitignore文件

bundle

firefly更新是用bundle
更新原厂的代码,有的时候发的patch,有的是发的bundle
当你在没有合适的网络或者可共享仓库的情况下,git bundle 很适合用于共享或者网络类型的操作

git bundle create命令来打包

git bundle create repo.bundle HEAD master  

然后你就会有一个名为 repo.bundle 的文件,该文件包含了所有重建该仓库 master 分支所需的数据

git bundle verify校验是否合法
git bundle list-heads列出顶端提交

解压

git clone repo.bundle bundle -b master
git clone xx.bundle xxx

https://www.jianshu.com/p/eebe5dc8ee91

管理与协作策略

工作流

  • gitlab flow
  • github flow
  • Git Flow

issue:

bug,需求或想法,任何与项目有关的问题
强烈建议跟项目有关系的事情,不要放在脑子里,放在issues中。而我们每天上班的第一件事就是看issues,了解项目相关的问题

milestone(里程碑)

labels

branch

先fork一个dev分支
如果正在开发或维护某个分支, 最好每天至少一次推送到dev分支
master分支保持稳定的发布版本

diff & patch

Kernel:

diff -Nru -x "*.o" -x "*.tmp" -x "*.cmd" -x "*.s" -x "*.map" -x "*.map" -x "*.builtin"   -x "config_data.h" -x "Module.symvers" -x "*.lds" Kernel_v2.3 Kernel_v2.3-spon > kernel_diff.patch

Uboot:

diff -Nru -x "*.o" -x "*.srec" -x "*.cmd" -x "*.map" -x "*.s" -x "*.su" -x "zconf.hash.c" -x "zconf.lex.c"  -x "zconf.tab.c" U-Boot_v2.3 U-Boot_v2.3-spon > uboot_diff.patch 

补丁:

patch -p1 <

文章作者: Shell
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Shell !
评论
  目录