git - 为什么一个分支的更改在另一个分支中可见?

标签 git git-commit git-add

我执行以下命令序列:

git init rep
cd rep/
echo '111' > 1.txt
git add 1.txt 
git commit -m '1'
git checkout -b dev
echo '222' > 1.txt 
git checkout master
more 1.txt 

作为这些命令的结果,我看到了

222

我不明白为什么。如您所见,我创建并进入了“开发”分支。我在那里做了一些更改,但我不添加也不提交它们。为什么在从“dev”返回到“master”后我确实看到了我在“dev”中所做的更改?在我添加、提交并将它们 merge 回 master 之前,它们不应该留在 dev 中吗?

最佳答案

当您在不同分支之间移动时,所有未跟踪的文件都不会受到影响。因为它们属于您的文件系统,所以 GIT 不知道这些文件属于哪个分支。因此,当您提交这些文件时,GIT 会知道哪些文件属于哪个分支。并可以根据您的分支在工作区中删除或添加文件。

关于git - 为什么一个分支的更改在另一个分支中可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471400/

相关文章:

git - Fish shell 改变了 git stash 引用的工作方式。如何配置 shell 来解决这个问题?

git - 如何将修改后的提交推送到远程 Git 存储库?

git - 当我执行 git commit --verbose 时,将语法设置为 diff in sublime text 2

Git 智能 HTTP 协议(protocol)无法在推送时执行服务器端 Hook

perl - 构建 Qt5 Git/Perl - 路径

branch - 修复 GitLab 错误 : "you are not allowed to push code to protected branches on this project"?

git - 在我的第一次提交中,我无法推送更改,因为我的 github 中已经有 .gitignore 和 README.md,与本地不同

git - 如何为 "git add -p"中的帅哥设置制表符大小?

Git 不会添加修改过的文件

git - 运行 'git-add' 后发出的正确 'git-mergetool' 命令是什么?