git - 如何合并 git 存储库和其他一些本地存储文件?
问题描述
我们已经推送了一个存储库。它在 1 个月前被推送到 master,开发人员一直在研究它,已经创建了分支合并代码等。
另一方面,另一位开发人员已经研究了在推送到掌握之前的代码。而且这个开发者的代码不在 git 上。所以他的代码不包含存储库上的更改。让我们称他的代码为本地 X。
我想将它们合并在一起。但是要决定哪些代码有用,哪些没有。我在本地 X 上试过这些:
git init
git remote add origin https://gitlab.com/xyz/xyz
git pull origin master
它不拉。我无法决定我该怎么做。
解决方案
假设本地 X在 commit 之后与上游代码不同123abcd
,您可以git clone
进入一个新目录,branch-x
在该提交处创建一个新目录,然后将开发人员的更改复制到该分支并提交并推送它。然后将其合并到master
正常的 Git 工作流程。
git clone "$url" upstream
cd upstream
git checkout 123abcd
# detached branch
git checkout -b x-branch
# now copy in changes
cp ../local-x/changedfile ./
cp ../local-x/subdir/*.py ./subdir/
:
git add -A
git commit -m "Checked in changes from 1+ month of random activity"
git push origin branch-x
在合并之前不需要实际推送这个新分支;但我认为,如果您需要撤消部分或全部后续工作以将其合并到master
.
如果有任何新添加的文件,git add
在最终提交和推送之前将它们分开。显然,如果您可以将其构建为多个巨大的提交,那么对于任何试图理解最终合并到master
.
本地分支是在第一次提交之前还是之后发散并不是一个关键问题。理论上你可以有一个最终不会植根于第一次提交的分支,但我认为它在这里并没有真正增加任何价值。
推荐阅读
- json - 如果json更改,如何从api加载数据?json上的观察者?使用 vue-chartjs 和 axios 可视化数据
- python - ValueError:形状 (None, 1) 和 (None, 10) 不兼容
- python - 如何在适当的位置键入转换函数的许多参数?
- apache-kafka - KSQL创建具有多列聚合的表
- c++ - 无法理解 ch = cin.get() 的使用
- jquery - 按钮单击的 Fullcalendar gotoDate 方法
- java - 如何在 QMap spring-data-mongoDB queryDSL 中查找元素
- html - Chrome在登录页面提示密码
- java - 旋转整数数组的递归方法分析
- reactjs - 如何在反应中添加输入文本事件处理程序