我有一个名为A
的分支,我有一个正在运行的项目。我有一个正在分支B
工作的朋友。最近我们在源代码中进行了主要版本更改,因此分支B
现在是最新的。我需要将所有源代码和文件/文件夹复制到我的分支,以便分支A
与B
同步,并且也是最新的。由于我对git命令不太了解,我只想通过使用命令来拉动分支:
git checkout B
git pull origin B
现在,在这两个命令之后,B
的所有更改都在我的分支A
中。但是当我使用git checkout A
切换回我的分支时,一切都恢复了。我想要的是将B
的所有内容复制到A
。
答案 0 :(得分:3)
使用以下命令:
git checkout B
git pull origin B
在:
B
B
的本地状态与其远程状态当您运行git checkout A
时,您更改了工作副本 - A
和B
具有不同的历史记录 - 因此不同的文件。
您需要merge分支B
进入A
或rebase。如果你是一个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