Git - 如何使用其他开发人员的新代码更新我的repo

时间:2017-05-26 16:47:37

标签: git github gitlab

我一直在做一个非常大的项目。 我在Gitlab上有一个名为ProjectXYZ的项目,过去我有过几次提交。

我最近将我的代码提供给了第三个人,他做了一些更改(这可能是添加,删除,修改文件)

当我把代码交给第三个人时,我并没有对我这方面做出任何改变。所以,如果有任何改变,那就是第三个人。

这个人刚刚把他们的修改完整的代码交回给我.ZIP文件夹。

我解压缩了ZIP文件夹并启动了解决方案文件,并确认该内容正在使用该人的新代码。

现在,我想将这个新代码推送到Gitlab上现有的ProjectXYZ。我还想保留所有以前的提交。

以下步骤是我认为我将要做的,请告诉我这是否有效。

1)我将进入我本地PC上现有的ProjectXYZ目录并删除除 .git 文件夹以外的所有内容(以保留git)。

2)然后我从其他人发送给我的文件夹中复制所有内容并将其粘贴到我本地PC上现有的ProjectXYZ目录中。

3)我会做一个git add * - > git commit - > git push - >更新我的git repo。

注意:因为在我将代码提供给第三方之后我没有对我进行任何更改,所以我不会担心我会丢失任何代码更改。

如果这是正确的做法,请告诉我。我知道还有其他办法可以做,但请相信我,我已经尝试过这样的失败My other post

谢谢

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤操作:

  1. git checkout -b更改(其中更改是第三人所做的更改)
  2. 在此分支中粘贴.zip中的所有文件
  3. 像你说的那样执行git add,commit和push
  4. 做一个rebase:git rebase master
  5. 使用git checkout master
  6. 返回master

    为什么这样?

    当您使用rebase而不是合并时,您可以清除日志,而不是保留另一个分支中隔离的更改。

答案 1 :(得分:0)

@Ivan Rodrigues

我从你的建议开始,最终我找到了解决方案如下。这种方法是:

i)创建一个“dev”分支

ii)对此dev分支进行任何更改(如果您不希望git在项目树上显示dev分支,则不必“推送”)

iii)最后将此合并到主人

以下是适用于我的步骤:

1.git checkout -b BranchX

2.您的开发工作......或根据需要对文件/文件夹/目录进行任何更改

3.git add *(添加所有更改)

4.git commit -m“我的消息”

5.git push origin BranchX(你不需要这样做它仍然可以工作)

6.git rebase master

7.git checkout master

8.git合并BranchX

9.git push origin master

现在,Master分公司将拥有所有最新资料。

再次,非常感谢大家的帮助。