git checkout从现有分支到新分支的所有文件

时间:2018-06-02 12:23:20

标签: git

我有一个名为Brach1的分支。

我想将此分支中的所有文件/文件夹复制到新创建的分支,例如Br​​anch2

请不要问"到目前为止你尝试了什么"。

我无法尝试丢失我的数据。

我用Google搜索,她在下面说,我对target_branch和new_branch感到困惑。

Git workflow: Merge existing branch to new branch and delete old one

请建议详细步骤

4 个答案:

答案 0 :(得分:1)

你误解了分支:

默认情况下,您在master 分支,因此您已经在使用分支机构,但您并不知道。分支只是一个"书签"用于提交,而不是新的"目录"。

如果你创建一个新的分支,它将指向同一个提交你现在在哪里(通常是master的HEAD)。通过检查这个新分支,你的文件都没有丢失。

理解的最佳方式是边做边学:创建一个新的存储库并进行试用。

有关详细信息,请参阅Pro Git书籍:

https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#_create_new_branch

  

如果您创建新分支会发生什么?好吧,这样做会创建一个新的指针供你四处走动。

它什么都没做,但添加了一个"书签"调用" Branch2",文件保持不变。

答案 1 :(得分:0)

命令git checkout -b new_brach将保留您的本地更改,将它们移动到新分支。

答案 2 :(得分:0)

git checkout -b new_branch old_branch

答案 3 :(得分:0)

在您的情况下, target_branch 是“ Branch1 ”而 new_branch 是您的“ Branch2 ”(根据您在问题中描述的分支名称。)

所以,这就是你应该做的:

1 - 如果您的更改未提交,您只需执行此操作:

git checkout -b <new-branch>

这将创建并结帐到新分支并保留所有更改。此外,您的更改将存在于旧分支中。

2 - 如果您已提交更改:

> git checkout Branch2
> git cherry-pick Branch2..Branch1
> git branch -f Branch1
> git checkout Branch1