Git checkout将文件传输到另一个分支

Git checkout将文件传输到另一个分支,git,Git,我目前正在处理主分支,我做了一些更改,隐藏了更改,然后在键入以下内容时签出到新分支: git status 看来git传输了我在主分支中使用的文件。我的问题是:它为什么这样做?这正常吗?你能解释一下这里发生了什么吗 编辑:我在主分支上,我创建了文件dato.py,我保存了更改并键入了git checkout feature\u branch,然后键入了git status,而且dato.py文件似乎也在feature_分支上git checkout feature_分支将尝试将当前分支更改为f

我目前正在处理主分支,我做了一些更改,隐藏了更改,然后在键入以下内容时签出到新分支:

git status
看来git传输了我在主分支中使用的文件。我的问题是:它为什么这样做?这正常吗?你能解释一下这里发生了什么吗


编辑:我在主分支上,我创建了文件dato.py,我保存了更改并键入了
git checkout feature\u branch
,然后键入了
git status
,而且dato.py文件似乎也在feature_分支上

git checkout feature_分支
将尝试将当前分支更改为
feature_分支
,然后将本地目录(称为工作目录)同步到该分支中的文件/目录

如果当时存在
dato.py
,则表示有人已经在该分支上创建/推送了该文件

但是
git checkout
不会传输任何文件,只有
git fetch
(或
git pull
)会传输文件

关于Johnsharpe评论,您可能认为您已经隐藏了
dato.py
文件,但是如果它没有被git跟踪(从未添加到索引中,也没有提交),那么
stash
将不会对该文件产生影响,因此,即使更改了分支,该文件仍然会存在

这称为未跟踪文件,因此…实际上有未跟踪的;-)

下面是一个
隐藏
的示例:

git init 100%  
已在/home/cyrile/Documents/Projects/test/.Git中初始化空Git存储库/
❯ 回声toto>toto
❯ 回声塔塔>塔塔
❯ ls
总计8,0K
-rw-r--r--1西里尔西里尔5 11月9日12:43塔塔
-rw-r--r--1西里尔西里尔5 11月9日12:43托托
❯ 加总
❯ git提交-m“一个文件”
[master(root提交)5db6b8d]文件
1个文件已更改,1个插入(+)
创建模式100644 toto
❯ git状态
论分行行长
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
塔塔
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)
❯ 回音titi>titi
❯ ls
总数12千
-rw-r--r--1西里尔西里尔5 11月9日12:43塔塔
-rw-r--r--1西里尔西里尔5 11月9日12:44 titi
-rw-r--r--1西里尔西里尔5 11月9日12:43托托
❯ git状态
论分行行长
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
塔塔
提提
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)
❯ 吉特加提提
❯ git状态
论分行行长
要提交的更改:
(使用“git还原--暂存…”取消暂存)
新档案:titi
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
塔塔
❯ 暂存
已在主控台上保存工作目录和索引状态WIP:5db6b8d a文件
❯ git状态
论分行行长
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
塔塔
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)
❯ ls
总计8,0K
-rw-r--r--1西里尔西里尔5 11月9日12:43塔塔
-rw-r--r--1西里尔西里尔5 11月9日12:43托托

titi
文件被隐藏是因为我把它添加到了索引中(现在它被跟踪了),而
tata
文件没有,所以stash命令没有对它做任何处理。

你说的“转移”到底是什么意思?这听起来像是隐藏应该做的事情?
git status
不要签出分支,它显示有关当前分支的文件状态。是什么让你认为git在某个时候“传输”了一些文件?你为什么把你的变化藏在第一位?请为您的问题提供更多的上下文,以便我们能够更好地帮助您。是否跟踪了
dato.py
?它真的被隐藏了吗(例如,在切换分支之前,您是否看到干净的工作状态)?如果没有,git的行为将如预期的那样-除非有冲突,否则您可以切换处于脏工作状态的分支,这些更改将保持在工作状态。@jonrsharpe我认为它没有被跟踪,以及为什么会发生,我不明白,抱歉,我对git是新手,仍在学习