Issac Lab | Orbit改名啦 1 | 如何将Isaac Lab版本作为一个新的分支保存到之前fork的Orbit仓库中 | 在Git仓库中处理项目重命名和文件变动

如是我闻: 随着Isaac Sim 版本更新到4.0, 很神奇的是Orbit更名为了Isaac Lab。主体功能不变,仅仅有一些文件名和文件结构发生了改变。事实上,如果你fork了之前的Orbit,你会发现他真的就是变了个库的名字。而被伤已久的心告诉我,直接使用新版本还有待观望,他许诺的新功能一时半会也放不出来。但是我们可以先把新的版本存到一个branch里慢慢研究,遂有此文。

需求背景

我们fork了一个名为Orbit的仓库,而原始仓库已经重命名为Isaac Lab,并且文件名发生了变化。我们希望在我们的fork仓库中同时保留原先的Orbit版本和新的Isaac Lab版本,并将Isaac Lab版本作为一个新的branch。

解决方案步骤

Step 1: 查看现有的远程仓库

首先,在终端打开我们之前clone的orbit文件夹,查看现有的远程仓库。

git remote -v

输出示例:

origin    git@github.com:Yannyehao/orbit.git (fetch)
origin    git@github.com:Yannyehao/orbit.git (push)
upstream  https://github.com/NVIDIA-Omniverse/Orbit.git (fetch)
upstream  https://github.com/NVIDIA-Omniverse/Orbit.git (push)
Step 2: 添加新的上游远程仓库

将新的仓库https://github.com/isaac-sim/IsaacLab添加为新的上游远程仓库。

git remote add new-upstream https://github.com/isaac-sim/IsaacLab.git

确认新的远程仓库已添加:

git remote -v

输出示例:

new-upstream  https://github.com/isaac-sim/IsaacLab.git (fetch)
new-upstream  https://github.com/isaac-sim/IsaacLab.git (push)
origin        git@github.com:Yannyehao/orbit.git (fetch)
origin        git@github.com/Yannyehao/orbit.git (push)
upstream      https://github.com/NVIDIA-Omniverse/Orbit.git (fetch)
upstream      https://github.com/NVIDIA-Omniverse/Orbit.git (push)
Step 3: 从新的上游仓库获取最新版本

从新的上游仓库获取最新版本的代码。

git fetch new-upstream

输出示例:

remote: Enumerating objects: 2840, done.
remote: Counting objects: 100% (2835/2835), done.
remote: Compressing objects: 100% (1420/1420), done.
remote: Total 2840 (delta 1528), reused 2491 (delta 1286), pack-reused 5
Receiving objects: 100% (2840/2840), 7.04 MiB | 6.22 MiB/s, done.
Resolving deltas: 100% (1528/1528), completed with 11 local objects.
From https://github.com/isaac-sim/IsaacLab
 * [new branch]      feature/enable_composite_compose -> new-upstream/feature/enable_composite_compose
 * [new branch]      feature/hydra        -> new-upstream/feature/hydra
 * [new branch]      fix/spot_gait_reward -> new-upstream/fix/spot_gait_reward
 * [new branch]      gh-pages             -> new-upstream/gh-pages
 * [new branch]      main                 -> new-upstream/main
 * [new tag]         v0.3.1               -> v0.3.1
Step 4: 创建新的branch并合并新的上游代码

在你的fork仓库中创建一个新的branch,并将新的上游仓库的新版本代码合并到这个branch中。

git branch

输出示例:

* Introduce-Two-Blocks
  main

切换到新的branch:

git checkout -b isaac-lab

输出示例:

Switched to a new branch 'isaac-lab'

合并新的上游仓库的代码:

git merge new-upstream/main

如果出现冲突,暂存当前的本地更改:

git stash

然后再次合并新的上游代码:

git merge new-upstream/main

输出示例:

Auto-merging source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/manipulation/lift/config/franka/__init__.py
Auto-merging source/standalone/tutorials/05_controllers/run_diff_ik.py
CONFLICT (content): Merge conflict in source/standalone/tutorials/05_controllers/run_diff_ik.py
Auto-merging source/standalone/workflows/skrl/play.py
Automatic merge failed; fix conflicts and then commit the result.
Step 5: 解决冲突并提交合并
(如果你已经对原先Orbit做过修改,并且不希望这个存放新版本的分支保存那些更改,请往下看)

编辑有冲突的文件并手动解决冲突,然后标记这些文件为已解决。

# 编辑有冲突的文件并解决冲突
# 使用你喜欢的编辑器打开冲突文件并手动解决冲突

# 添加解决冲突后的文件
git add <冲突文件>

提交合并:

git commit -m "Merge new-upstream/main into isaac-lab with conflict resolution"

输出示例:

[isaac-lab 1a07fea] Merge new-upstream/main into isaac-lab with conflict resolution
Step 6: 推送新的branch到远程仓库

将新的branch推送到你fork的仓库中,以便在远程仓库中也有相应的分支。

git push origin isaac-lab

输出示例:

Enumerating objects: 63, done.
Counting objects: 100% (63/63), done.
Delta compression using up to 32 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (27/27), 2.57 KiB | 1.28 MiB/s, done.
Total 27 (delta 12), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (12/12), completed with 12 local objects.
remote: 
remote: Create a pull request for 'isaac-lab' on GitHub by visiting:
remote:      https://github.com/Yannyehao/orbit/pull/new/isaac-lab
remote: 
To github.com:Yannyehao/orbit.git
 * [new branch]      isaac-lab -> isaac-lab

如果你想要让你的isaac-lab分支完全和new-upstreammain分支一致,可以通过以下步骤实现:

Step 1: 确保在isaac-lab分支上

首先,确认你当前在isaac-lab分支上。

git checkout isaac-lab
Step 2: 重置isaac-lab分支到new-upstream/main

通过硬重置命令,将你的isaac-lab分支重置为new-upstream/main的状态。这个操作会覆盖所有当前分支上的更改,使其完全与new-upstream/main一致。

git reset --hard new-upstream/main
Step 3: 推送更新后的isaac-lab分支到你的远程仓库

将更新后的isaac-lab分支推送到你的远程仓库,强制覆盖远程分支的内容。

git push origin isaac-lab --force

这样,你的isaac-lab分支将与new-upstream/main分支完全一致,而不会保留任何本地更改。

总结

通过上述步骤,我们可以成功地将新的Isaac Lab版本代码合并到fork仓库中的新branch,并解决冲突。以下是关键步骤的总结:

  1. 查看现有的远程仓库。
  2. 添加新的上游远程仓库。
  3. 从新的上游仓库获取最新版本。
  4. 创建新的branch并合并新的上游代码。
  5. 解决冲突并提交合并。
  6. 推送新的branch到远程仓库。

Isaac Lab(Orbit)好不好用是一方面,但是至少能看到他是在发展的,有变化就有机会。

非常的有品

以上

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值