我正在尝试将 git 用于本地工作流程管理,并着眼于为我的团队提出建议。所以我想完全理解它,我遇到了一些我不理解的事情。
我进入 git-land 的地方是,我有一个 SVN 存储库,其中有我和另一位开发人员正在开发它。我们的 PM 更改了项目时间表,因此他的子项目需要几乎立即投入生产,然后我的大约一个月后。我们都在同一个 SVN 存储库中开发,并且我的东西已经开始对用户可见,因此需要为即将到来的生产迁移而退出。
我更新了我的 SVN 工作目录。我在同一个目录中启动了一个 git 存储库(忽略 .svn 等)。我确实git branch map-dev
为我的(与地图相关的)子项目创建了一个开发分支。我确实git checkout master
回到了 SVN 同步的分支,并编辑了这些文件以完成我的工作。一旦我的项目的早期部分不再可见,我就致力于 git(带有注释“地图搜索的东西呈现不可见”),致力于 SVN,并将 SVN 内容推送到暂存。所以现在登台/测试服务器上没有我的东西和他的所有东西,这很好。
几天后,我在我的map-dev
分支中进行了开发,我的同事向 SVN 签入了一些不会真正影响我正在做的事情的东西,但我想保持同步。
我git checkout master
。我svn up
。我git commit -a
评论“从 SVN 更新”。
map-dev
现在我想,好吧,用 master 中的这些变化进行rebase ,对吧?所以我这样做了,我解决了一两个冲突,一切看起来都很笨拙。然后我注意到我提交的master
名为“地图搜索内容呈现不可见”的更改是最新的。在我的 dev 分支上没有更新的提交,这就是第一次提交 repo 时的情况。
所以。我曾经git revert --hard ORIG_HEAD
回到 rebase 之前的位置。我想要的是我刚刚放入的 CSV 更改,master
而不是使我的工作不可见的提交。我该怎么做?