git merge官方源代码到本地服务器

使用场景:

  手头上有一份RK的android SDK包,里面有详细的git修改记录,并且已经把该SDK包推送到本地服务器上去了,git的代码路径还是保留和RK官方一致,当然RK的SDK包也是和google官方的保持一致

现在RK的SDK包有了更新,要merge到本地服务器,并且保留修改记录

1. 新增文件夹的情况,比如这次RK更新多了external/bluetooth_rtk/bluedroid这个路径

    首先把external/bluetooth_rtk/bluedroid scp到本地服务器对应的路径,然后在本地新建external/bluetooth_rtk文件夹,用命令:

     git clone ssh://venus/home/git/android/lollipop/platform/external/bluetooth_rtk/bluedroid.git 克隆一份到本地,新建和本地服务器一样的分支git branch ll-rk3288-5.1;

   接着git checkout ll-rk3288-5.1; git push origin HEAD:ll-rk3288-5.1 即可提交代码,最后修改.repo/manifest.xml文件新增该分支即可,这样即可保留bluetooth_rtk原来的修改记    录


2. 合并代码的情况,external/sepolicy/目录有代码更新,那么先在RK官方源代码包路径external/sepolicy下用git remote -v查看远程路径:

 

lsc@lsc:~/newDisk3/RKSDK/rk3288-box/external/sepolicy$ git remote -v
rk	ssh://git@www.rockchip.com.cn/repo/platform/external/sepolicy (fetch)
rk	ssh://git@www.rockchip.com.cn/repo/platform/external/sepolicy (push)

然后在本地仓库 git remote add test ssh://git@www.rockchip.com.cn/repo/platform/external/sepolicy添加远程分支,我这里起的名字是test

接着git fetch test获取所有分支,选择需要合并的分支,比如我这里的分支是remotes/rk/rk32/mid/5.1/develop,用:

git merge remotes/rk/rk32/mid/5.1/develop即可合并,最后git push origin HEAD:ll-rk3288-5.1提交代码即可


3. 存在问题:

我觉得这样的方法效率太低了,比如Android代码有几百个git分支,不知道那个分支代码是有更新的,现在使用比对工具比对常用的代码路径来更新的

后来想过用repo forall 来更新的,比如repo forall -c "$  REPO_PROJECT"可以获得所有git路径,只要稍加修改就能符合要求了,但是需要合并的RK SDK包的git分支不是同一个,有些目录分支是不一样的。

再个就是需要在线更新,本来我本地已经有一份最新的SDK包了,但是用git remote add test 本地路径  这个方法是不行的,或许用以下几个变量结合能达到效果,但懒得试了

Options

l         -c:后面所带的参数着是shell指令

l         -p:shell指令输出之前列出项目名称

l         -v:列出执行shell指令输出的错误信息

 additional environment variables:

l         REPO_PROJECT:指定项目的名称

l         REPO_PATH:指定项目在工作区的相对路径

l         REPO_REMOTE:指定项目远程仓库的名称

l         REPO_LREV:指定项目最后一次提交服务器仓库对应的哈希值

l         REPO_RREV:指定项目在克隆时的指定分支,manifest里的revision属性


我想应该有更好的办法吧,只是我没有找到,否则RK原厂是怎么合并google官方源代码的呢?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Git利用SSH上传本地代码到远程服务器的过程如下: 1. 首先,在本地机器上生成SSH密钥对。可以使用以下命令生成密钥对: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这将生成一个公钥和一个私钥。 2. 接下来,将公钥上传到远程服务器。可以使用以下命令将公钥复制到远程服务器: ``` ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_server ``` 其中,`username`是远程服务器上的用户名,`remote_server`是远程服务器的IP地址或域名。 3. 确保在本地仓库中已经初始化了Git,并且远程仓库已经添加为本地仓库的远程仓库。可以使用以下命令添加远程仓库: ``` git remote add origin ssh://username@remote_server/path/to/repository ``` 其中,`username`是远程服务器上的用户名,`remote_server`是远程服务器的IP地址或域名,`/path/to/repository`是远程仓库的路径。 4. 确保在本地仓库中已经添加了要上传的文件。可以使用以下命令将所有文件添加到暂存区: ``` git add . ``` 5. 使用以下命令提交更改: ``` git commit -m "Commit message" ``` 6. 最后,使用以下命令将本地仓库中的代码上传到远程服务器: ``` git push origin master ``` 这将把本地仓库中的代码推送到远程仓库中的master分支。 通过以上步骤,你可以使用Git利用SSH上传本地代码到远程服务器。这样可以方便地进行版本控制和团队协作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值