Git:分支应该隔离更改,还是不应该?

2023-11-23

我以为我已经很好地掌握了 Git,但现在我感到惊讶。我认为分支会将更改与其他分支隔离,因此我在新分支中开始了大规模的实验性重构。这种重构意味着移动许多文件。当我切换到 master 时,我仍然可以看到变化!

我转到我的沙箱存储库来复制问题:

$ git branch crazy-refactoring
$ git checkout crazy-refactoring
$ rm README
$ git checkout master
$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    README
#
no changes added to commit (use "git add" and/or "git commit -a")
$ ls README
ls: cannot access README: No such file or directory

为什么?我创建一个分支的全部目的是,我可以尝试一些东西,如果不成功就扔掉它。紧身衣?


您没有提交删除。只有提交的更改才是“隔离的”。

关于您的评论:

也许我错过了一些东西,但在我看来,这是一种奇怪且不受欢迎的行为。

想一想:

你删除了README in crazy-refactoring但没有提交更改。 Git 知道您更改了文件并且没有提交它。为了preserve您的更改,如果您签出另一个分支,它不会覆盖它们。
否则,当您切换回进行更改的分支时,Git 将无法知道更改是什么。它们将会丢失,这比看到其他分支中的更改更糟糕。

您当前的工作目录始终是当前分支+未提交的更改(除非您重置它们)。

当然,当检查其他分支时,Git 可能会警告您有未提交的更改,但有时需要保留更改and切换到另一个分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git:分支应该隔离更改,还是不应该? 的相关文章

  • Git 将分支从一个远程推送到另一个远程?

    我设置了以下遥控器 git remote korg rorg 以及以下分支 git branch a no branch remotes korg gingerbread remotes korg gingerbread release r
  • 使用 reposurgeon 将 svn repo 转换为 git

    我正在尝试使用 svn repo 转换为 git再生外科医生 http www catb org esr reposurgeon 这是我所做的 有一个具有 svn 名称 gt git 名称映射的 repo map 文件 svnadmin d
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 我如何知道哪些文件已在 git 中标记为“假设未更改”

    这个答案 https stackoverflow com a 936325 554807向您展示如何将 git 管理的文件标记为 我不希望从该文件的存储库进行更改 IE 拥有该文件的您自己的本地未跟踪版本 即使它仍然受到 git 的修订控制
  • 我的终端中的彩色、并排、内联 git diff 输出

    请注意 此问题不是该问题的重复问题 而是该问题的后续问题 当我执行 git diff 时 如何获得并排差异 https stackoverflow com questions 7669963 how can i get a side by
  • 为什么我无法在 Windows 10 中将 notepad++ 设置为 git 提交编辑器?

    我知道这个问题已经被不止一次地提出和回答过 但我尝试了答案所建议的至少十种不同的方法 但没有一个对我有用 我总是得到nano当我这样做时作为编辑 git commit 如果我可以剪切并粘贴到nano 但这是做不到的 举个例子 这是我的 gi
  • git fetch 的默认远程

    如果我在当地的分支机构not跟踪任何远程分支 我发出命令 git fetch 鉴于我定义了几个遥控器 GIT DIR config 从哪个远程获取 我试图从man page https www kernel org pub software
  • 合并两个github帐户

    假设我有两个 github 帐户xyz 邮件 ID email protected cdn cgi l email protection and abc email protected cdn cgi l email protection
  • 如何在提交后删除本地 git 历史记录?

    我想从 Dropbox 切换到开源 Sparkleshare 它使用 git 进行同步和版本控制 如果说我在文件夹中删除了一个 1GB 文件 它会保留在本地 git 文件夹的历史记录中 但我希望将这种大量数据放在服务器上而不是客户端上 如何
  • git difftool 进行目录比较?

    是否可以使用 git difftool 命令来打开已更改文件和暂存 检查文件之间的目录比较 因此 理想情况下 如果 2 个文件已更改 它们将是唯一显示的 2 个文件 但在目录比较中 我读过关于让 git 并行给出所有文件差异的帖子 所以像
  • 从 git 中提取特定的提交/文件

    我在 git 存储库中进行了两次提交 并将它们推送到我的 git 服务器 两个提交是 在第一次提交中文件 A 被提交 在第二次提交中 文件 B 被提交 现在在另一台开发服务器上 我只想从 git 服务器中提取第一个提交或文件 A 这个怎么做
  • 从另一个分支或从 master 创建 Git 分支?

    所以我是 Git 新手 我最近从存储库中提取了主分支的新版本 我创建了一个branch 1 获取某个功能并将其推送到存储库并创建拉取请求 现在我创建了一个新的branch 2 具有另一个功能 但由于我的拉取请求尚未合并 再次拉取 maste
  • GIT Rebase 协作的分支?

    阅读本文后 重新设置基点以收集从主分支到我的功能分支的更改是有意义的 Git 工作流程以及 rebase 与合并问题 https stackoverflow com questions 457927 git workflow and reb
  • 为什么 git-cherry pick 没有说要提交什么?

    我对以下问题进行了很多搜索 但无法获得任何实质性信息 我创建了一个临时分支 202116 并尝试对 gerrit 202116 进行挑选 并收到以下消息 为什么我无法挑选此提交以及为什么会收到此错误 lt gt git fetch ssh
  • 无法连接到存储库:执行 git 命令时出错:git ls-remote -h ***public github url *** HEAD

    I have installed jenkins on ec2 instance when i try to configure my public github repo with the ec2 instance then it thr
  • git 可以知道你当前的分支是从哪个分支分支出来的吗?

    我想创建一个 git 别名 让我可以从其分支的原始分支同步我的分支 例如 如果我从
  • Git 子模块导入语句失败

    我将一个存储库作为子模块添加到我的项目中 但是当我编译项目时 该存储库中的导入语句无法解析 为了添加子模块 我使用了命令 git submodule add
  • Git 错误:引用名称“HEAD”不明确

    我对 git 还很陌生 目前 我尝试按照本教程使用分支名称和版本覆盖我的应用程序的图标 http www merowing info 2013 03 overlaying application version on top of your
  • 如何在版本控制系统中安全地保存密钥和密码?

    我在版本控制系统中保留了开发和生产服务器的主机名和端口等重要设置 但我知道这是不好的做法保留secrets 如私钥和数据库密码 位于 VCS 存储库中 但密码 就像任何其他设置一样 似乎应该进行版本控制 所以呢is保持密码版本控制的正确方法
  • 尝试匿名克隆 github 存储库时权限被拒绝

    作为匿名用户 github 上没有存储公钥 我尝试通过以下方式克隆公共存储库 git 网址 但它失败了 git clone email protected cdn cgi l email protection mikehaertl phpw

随机推荐

  • 原子操作会阻塞其他线程吗?

    我试图让 原子与非原子 的概念在我的脑海中扎根 我的第一个问题是我找不到 现实生活中的类比 就像原子操作上的客户 餐厅关系或类似的东西 我还想了解原子操作如何将自己置于线程安全编程中 在这篇博文中 http preshing com 201
  • 安装:Microsoft Visual C++ Redistributable 卡在“正在处理:Windows7_MSU_X64”

    我正在尝试安装 Microsoft Visual C Redistributable 软件包 因为无法安装我的 xampp apache 模块 安装需要很长时间才能完成 我应该怎么办 这种情况常见吗 我所要做的就是等待吗 他们完全被这个设置
  • 如何检查FormData?

    我试过了console log并使用循环遍历它for in 这里是MDN 参考在 FormData 上 两种尝试都在这fiddle var fd new FormData key poulate with dummy data fd app
  • 在 PyQt 中绘制多边形

    背景 我想在屏幕上绘制一个简单的形状 并且我选择 PyQt 作为要使用的包 因为它似乎是最成熟的 我并没有以任何方式锁定它 Problem 仅在屏幕上绘制一个简单的形状 例如多边形 似乎过于复杂 我发现的所有示例都尝试做很多额外的事情 但我
  • 需要无效 Swing 组件的高度

    基本设置是这样的 我有一个垂直的 JSplitPane 我想要一个固定大小的底部组件和一个调整大小的顶部组件 我通过调用来完成setResizeWeight 1 0 在此应用程序中 有一个按钮可恢复 默认 窗口配置 窗口的默认高度是桌面高度
  • 向量化模运算

    我正在尝试编写一些相当快速的分量向量加法代码 我正在使用 我相信是有符号的 64 位整数 函数是 void addRq int64 t a const int64 t b const int32 t dim const int64 t q
  • 以下冒号 (:) 在 MATLAB 语法中意味着什么?

    a imread autumn tif a double a row col dim size a red a 1 green a 2 blue a 3 冒号有什么作用 最后三行是什么意思 上面的片段来自 Dhananjay Thecked
  • 如何在 Junit3 中获得 @BeforeClass 和 @AfterClass 等效项?

    我想在用测试装置替换应用程序的数据库之前备份它 由于 Android 限制 我被迫使用 Junit3 并且我想实现 BeforeClass 和 AfterClass 的等效行为 更新 现在有一个工具 Junit4Android 以获得支持
  • 使用 IText 创建 Pdf 文档#

    如何创建带有表格的 pdf 文档 如下所示 添加命名空间 using iTextSharp text using iTextSharp text pdf 使用c 的代码 Document doc new Document PageSize
  • SimpleAdapter、微调器中的文本和图像

    我有一个小问题 好吧 让我首先说明我想要实现的目标 我有一个旋转器 可以从存储的数组中提取字符串 就像这样 你不需要阅读它 ArrayAdapter
  • Android 中类似 iPhone 的标签栏?

    在 iPhone 中 我们可以创建一个具有选项卡栏的视图 并将其作为应用程序的根视图 然后使用选项卡栏在子视图中导航 Android 中与此最接近的方法是什么 是使用选项卡式控件吗 但这包括仅使用一项活动 在 Android 中使用什么方法
  • 混合声明和代码

    当我使用 gcc o dene Wall ansi pedantic errors dene c 编译函数时 gcc 不会发出错误 你能在 if 循环中查看以 char 开头的行吗 static void remove negation c
  • select() 最大套接字数

    只是更多异步的东西 好吧 现在我的主聊天应用程序有了一个可以工作的异步套接字程序 而且它运行得非常好 不过我有一个担心 使用 select 时 每组中可以使用的文件描述符的最大数量是多少 我读过关于 1024 的限制 如果该限制确实是硬编码
  • 如何将多个谓词应用于 java.util.Stream?

    如何将多个谓词应用于java util Stream s filter method 这就是我现在所做的 但我不太喜欢它 我有一个Collection的事物 并且我需要根据以下内容减少事物的数量Collection过滤器 谓词 的数量 Co
  • AngularJS 使用 FormData API 上传多个文件

    我需要使用 Laravel 5 1 作为后端 在 Angular 应用程序中将图像和视频文件上传到服务器 所有 Ajax 请求都需要首先发送到 Laravel 控制器 我们在那里有代码 说明文件到达那里后如何处理 我们之前已经完成了普通的
  • 将 PyTorch 与 Celery 结合使用

    我正在尝试在 Django 应用程序中运行 PyTorch 模型 由于不建议在视图中执行模型 或任何长时间运行的任务 我决定在 Celery 任务中运行它 我的模型相当大 加载大约需要 12 秒 推理大约需要 3 秒 这就是为什么我决定不能
  • 项目错误:QT 中的未知模块:websockets

    我正在尝试使用 Qt Creator 使用 QTWebsockets 运行一个简单的客户端示例 已经添加了 QT websockets 但是当我运行 build 或 qmake 时它会抛出这个问题 1 error Unknown modul
  • 列出并爆炸

    我正在尝试在我的网站上使用 url 重写 并且我想使用list and explode 函数来获取正确的内容 目前我的代码如下所示 list dir act explode url 在这种情况下 url等于绝对 url 中第一个斜杠之后的所
  • 在 Hibernate 4.3 中关闭 SessionFactory

    我正在将 Hibernate 升级到最新版本 与我的旧HibernateUtil java我没有遇到任何问题 但升级时 SessionFactory 似乎不再关闭 这是我的new HibernateUtil java class impor
  • Git:分支应该隔离更改,还是不应该?

    我以为我已经很好地掌握了 Git 但现在我感到惊讶 我认为分支会将更改与其他分支隔离 因此我在新分支中开始了大规模的实验性重构 这种重构意味着移动许多文件 当我切换到 master 时 我仍然可以看到变化 我转到我的沙箱存储库来复制问题 g