【问题标题】:How merging works when we use git add <filename>?当我们使用 git add <filename> 时,合并是如何工作的?
【发布时间】:2021-05-01 10:32:34
【问题描述】:

假设这是我的项目结构:

- project
    - .git
    - scr
        - component
            - file.js
  • 我确实克隆了项目
  • git checkout -b "newBranch"创建了一个新分支
  • file.js进行了一些更改
  • git add /scr/compoent/file.js添加到舞台
  • 然后由git commit -m "some changes"提交
  • 终于被git push origin newBranch推送到服务器了

从我生命的开始到现在,我只使用git add . 来为舞台添加更改。几分钟前,我第一次改用git add file.js

在这些命令之后,我去了GitLab interface -&gt; Repasitory -&gt; File -&gt; newBranch,我在那里只看到了file.js。此外,通过单击create merge request 发出合并请求,然后将其分配给我(我自己)并将master 作为目标分支。合并后,项目结构变成了这样:

- project
    - .git
    - file.js              //=> The file contains the changes
    - scr
        - component
            - file.js      //=> This file remained untouched

我的问题是,为什么file.js 被粘贴在项目的根目录中?在这种情况下,我们如何在真实文件上应用更改,而不是创建实例文件(包含更改)并将其定位到根目录?

【问题讨论】:

  • 在问题的两个不同点中,您声明您运行git add src/.../file.jsgit add file.js。你能澄清一下是什么时间吗?

标签: git gitlab git-add


【解决方案1】:

这不是应该发生的事情。恕我直言,在使用“另存为...”而不是保存进行更改后,您已将 file.js 保存到根目录。

你的描述也有问题。 git add /scr/compoent/file.js 似乎是错误的,因为不应该有前导斜杠,而且还有一个错字。

使用git add scr/component/file.js 应该可以正常工作。

在顶级目录中使用git add file.js 会将文件暂存到您可能错误创建的顶级目录中...

在添加和提交之前始终研究git status 的输出...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2022-01-08
    • 2013-07-23
    • 1970-01-01
    • 2021-07-22
    • 2018-03-07
    • 2018-01-06
    相关资源
    最近更新 更多