将未跟踪的文件夹复制到另一个分支

里斯托

有没有办法将未跟踪的文件夹复制到另一个分支?

我知道您可以通过执行以下操作将跟踪的文件夹复制到另一个分支:

git checkout mybranch
git checkout master -- myfolder

但是,是否有一种方法可以复制不在主数据库上跟踪在我要复制到的分支上跟踪的文件夹

我正在尝试对GitHub页面执行此操作,并且正在遵循本指南,但他致力于掌握并将其推送到上游gh页面。我不想那样做。我只希望我的构建生成文档并将未跟踪的文档复制到另一个分支,然后将其推入上游。

卡兹

您所遇到的情况是某些未跟踪文件与另一个分支中的跟踪文件冲突。您想切换到该分支,但checkout不允许您使用。

git中的“第一级”解决方案是将这些未跟踪的文件提升为索引:

git add folder

现在您仍然无法签到分支。但是,您将面临新的可能性:您可以进行git stash save以下更改:

git stash save

现在,您可以切换到分支,并执行git stash pop此时,您可以处理合并冲突(如果有的话),然后按a即可git reset完成。

[更新:git add是没有必要的,因为git stash有一个选项,包括未跟踪文件!]

让我们来看一个完整的示例,其中涉及一个名为的文件,该文件topicfile仅存在于分支中,并在上创建为工作文件master,但内容不同:

~$ mkdir gittest
~$ cd gittest/
~/gittest$ git init
Initialized empty Git repository in /home/kaz/gittest/.git/
~/gittest$ touch emptyfile
~/gittest$ git add emptyfile
~/gittest$ git commit -m "starting repo"
[master (root-commit) 75ea7cd] starting repo
 0 files changed
 create mode 100644 emptyfile
~/gittest$ git branch
* master
~/gittest$ git checkout -b topic
Switched to a new branch 'topic'
~/gittest$ cat > topicfile
a
b
c
d
e
~/gittest$ git add topicfile
~/gittest$ git commit -m "topicfile"
[topic 875efc5] topicfile
 1 file changed, 5 insertions(+)
 create mode 100644 topicfile
~/gittest$ git checkout master
Switched to branch 'master'
~/gittest$ ls
emptyfile
~/gittest$ cat > topicfile
@
a
b
c
d
e
f
g
h
~/gittest$ git add topicfile
~/gittest$ git stash save topicfile
Saved working directory and index state On master: topicfile
HEAD is now at 75ea7cd starting repo
~/gittest$ git checkout topic
Switched to branch 'topic'
~/gittest$ git stash pop
Auto-merging topicfile
CONFLICT (add/add): Merge conflict in topicfile
~/gittest$ cat topicfile
<<<<<<< Updated upstream
=======
@
>>>>>>> Stashed changes
a
b
c
d
e
<<<<<<< Updated upstream
=======
f
g
h
>>>>>>> Stashed changes
~/gittest$ cat > topicfile  # resolve in favor of stashed changes:
@
a
b
c
d
e
f
g
h
~/gittest$ git add topicfile
~/gittest$ git reset
Unstaged changes after reset:
M       topicfile
~/gittest$ git diff
diff --git a/topicfile b/topicfile
index 9405325..bea0ebb 100644
--- a/topicfile
+++ b/topicfile
@@ -1,5 +1,9 @@
+@
 a
 b
 c
 d
 e
+f
+g
+h

此时,我们可以将topicfile更改提交topic分支,并且仍未在上跟踪文件master

由于存在冲突git stash pop,因此隐藏项仍然存在。我们可以用清除它git stash drop

所有这一切的替代方法不仅是git add将未跟踪的文件添加到索引,而且git commit要进行正确的提交。然后我们可以将提交内容挑选到分支中。如果我们不希望在上跟踪这些文件master,那就可以了:我们稍后可以git reset --hard HEAD^在master上消除该提交。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将文件夹列表复制到另一个文件夹?

Git:将文件夹从 master 复制到另一个分支的根目录

将文件从一个文件夹复制到另一个文件夹

将内容从一个文件夹复制到另一个文件夹

如何将一个文件夹复制到另一个文件夹

使用python将文件复制到另一个文件夹

使用django将文件复制到另一个文件夹吗?

无法将文件列表复制到另一个文件夹

将特定文件复制到另一个文件夹

将文件从数值范围复制到另一个文件夹

如何仅将文件夹从目录复制到另一个目录

将图像复制到另一个文件夹

Java将文件从文件夹复制到另一个名称不同的文件夹

Java将匹配模式的文件从多个文件夹复制到另一个文件夹

将文件列表从目录+子文件夹复制到另一个文件夹

如何使用Powershell将文件夹的内容复制到另一个特定的文件夹?

如何将文件夹复制到 Makefile 中的另一个文件夹?

无法使用 Applescript 将图像文件夹复制到另一个文件夹

使用Python将子文件夹中的图像复制到另一个文件夹

将文件从文件夹和子文件夹复制到另一个文件夹并保存文件夹的结构

将一个文件复制到许多包含另一个条件的文件夹中

将所有文件从一个文件夹复制到另一个

将文件名从一个文件夹复制到另一个

将文件从一个目标文件夹复制到另一个

将文件复制到另一个文件夹,同时保留一个父目录

PHP将所有图像文件夹从一个文件夹复制到另一个文件夹

编写代码将图片从一个文件夹复制到另一个文件夹,但目标文件夹为空

C#将最后一个文件从一个文件夹复制到另一个生成的文件夹

将特定文件夹从一个位置复制到另一个Python