Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何将文件添加到另一个分支?_Git - Fatal编程技术网

Git 如何将文件添加到另一个分支?

Git 如何将文件添加到另一个分支?,git,Git,出于某种原因,我想放弃我的分支A,但我在该分支A中刚刚提交了一些文件。我想将它们添加到分支B。我该怎么做呢?如果您对如何在上面建议的控制台中执行正确的命令感到困惑,那么您有一个懒惰、简单的选择: 1) 从项目目录中复制文件 2) 结帐到您的分行 3) 将复制的文件替换为签出的文件,甚至可以合并它们 4) 提交更改git reset HEAD^将向后移动一次提交。即,就在您提交到分支\u A之前。现在使用git checkout branch\u B切换到branch\u B。然后git添加要提交

出于某种原因,我想放弃我的分支A,但我在该分支A中刚刚提交了一些文件。我想将它们添加到分支B。我该怎么做呢?

如果您对如何在上面建议的控制台中执行正确的命令感到困惑,那么您有一个懒惰、简单的选择:

1) 从项目目录中复制文件 2) 结帐到您的分行 3) 将复制的文件替换为签出的文件,甚至可以合并它们
4) 提交更改

git reset HEAD^
将向后移动一次提交。即,就在您提交到
分支\u A
之前。现在使用
git checkout branch\u B
切换到
branch\u B
。然后
git添加
要提交的文件,然后
git提交
它们。它们将在分支B上的
分支B

开关上:

git checkout branch_B
然后,签出要保留的文件:

git checkout branch_A file1 file2 file3 [...]
最后,提交您的更改

git commit -m "Backport changes from branch A for reasons"

打开分支A:
git checkout branch\u A
,使用
git log
并记录您的提交id。然后打开分支B:
git checkout branch\u B
并使用
git cherry pick your commit id
将提交移动到分支B中。

为什么不能使用merge、rebase、,或者cherrypick?我添加了太多垃圾,我不想和这些文件一起添加。因为我使用了'git add-A',我也承诺了。因此,我签出到旧版本并创建一个新分支。我想如果合并,我会花更多的时间。毕竟,我只有4个文件要添加。@Beat Cherry picking的可能副本只适用于更改,而不适用于文件。OP不想保存提交信息,只想保存文件状态,所以樱桃拣选不是最好的方法。这是您应该做的。有很多方法可以将文件从一个分支复制到另一个分支,很多方法都涉及到移动分支指针。提供最具选择性控制的最简单方法是,仅签出您想要保留的文件。不确定我会做什么不同的操作,但我的分支A在bitbucket中显示文件,当我签出分支B并尝试此操作时,它不会提取文件。基本上看不到他们。