如何在Git中将一个分支复制到另一个分支

时间:2017-11-14 06:55:47

标签: git github

我有一个名为A的分支,我有一个正在运行的项目。我有一个正在分支B工作的朋友。最近我们在源代码中进行了主要版本更改,因此分支B现在是最新的。我需要将所有源代码和文件/文件夹复制到我的分支,以便分支AB同步,并且也是最新的。由于我对git命令不太了解,我只想通过使用命令来拉动分支:

git checkout B
git pull origin B

现在,在这两个命令之后,B的所有更改都在我的分支A中。但是当我使用git checkout A切换回我的分支时,一切都恢复了。我想要的是将B的所有内容复制到A

3 个答案:

答案 0 :(得分:3)

使用以下命令:

git checkout B
git pull origin B

在:

  • 切换到分支B
  • 将分支B的本地状态与其远程状态
  • 同步

当您运行git checkout A时,您更改了工作副本 - AB具有不同的历史记录 - 因此不同的文件。

您需要merge分支B进入Arebase。如果你是一个git初学者更好的选择是合并:

git checkout A
git merge --no-ff B
即使合并是快进

--no-ff也会添加合并提交。

答案 1 :(得分:1)

您必须将分支B合并到分支A.命令是:

git checkout A git merge B

如果未将分支A推送到服务器,您也可以进行重新定位。

我建议你学习如何在git上管理分支。这里有两个很棒的教程可以帮助你https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow https://guides.github.com/introduction/flow/

答案 2 :(得分:0)

我建议按以下方式进行。

git checkout B
git pull origin B
git checkout -b B_backup
git push origin B_backup

git checkout A
git pull origin A

git checkout B
git rebase -i A

(解决冲突,检查一切是否有效)

git push origin B -f 

(这将覆盖分支B,确保没有出现任何变化)

git push origin A:B
git checkout A
git pull origin A