【问题标题】:Commit on master branch gets all the folders created in the testing branch在 master 分支上提交获取在测试分支中创建的所有文件夹
【发布时间】:2016-11-17 09:40:38
【问题描述】:

我正在开发一个新功能,为新功能创建一个名为 example 的分支。在这个分支中创建了很多新的文件夹和文件。
有一个高优先级的任务要执行,所以我使用 git checkout master 回到了主分支。

现在我在 master 分支中,进行了任何我想要的更改,并希望将其推送给我的主人。

我表演了git add -Agit commit -m 'Priority 2016'

这得到了测试分支中所有创建的文件夹和文件。
我做错了什么?
有什么帮助吗?

【问题讨论】:

  • git add -A 应该只添加新的或代表您已更改的内容的文件或文件夹。您要提交哪些文件/文件夹?
  • 当你 git checkout 时,所有 modif 都会移到你选择的分支中,除非你在 git checkout 之前在示例分支中提交。你也可以 git stash。
  • 我只想提交我在 master 而不是测试分支中所做的更改
  • 所以你的意思是说,当我在分支中时,每次我翻转到 master 时,我都需要提交更改,然后再翻转回 master?

标签: github git-branch master


【解决方案1】:

git checkout master 不会删除在另一个分支中添加(但未提交)的文件:请参阅“Why git keeps showing my changes when I switch branches

checkout master 时可能需要 git reset --hardgit clean -f -d (as shown here)。

如果你还没有推送,你可以:

  • 重置 HEAD 和索引:git reset @~
  • 删除多余的文件(如果需要将它们保存在您的分支中)
  • git add -A,然后再次提交。

作为OP Mohan Prasad cmets below

问题是每当我从分支切换到 master 时,我都没有提交我的更改:我只是做了 git checkout master 这导致了这个问题。

【讨论】:

  • 不,我的问题是,我不希望 git 也提交我的分支更改。当我在 master 并提交我的 master 更改时,它也在添加我的分支更改..
  • @MohanPrasad 因此我的回答是:当您切换回 master 进行修复时,您应该执行 reset --hard and clean 以避免保留在另一个分支中创建的文件。
  • 例如,我通过添加文件夹和文件在我的分支上工作了 50%。现在我回到 master 并在 master 分支中对我的其他代码进行一些更改。我想将我在 master 分支上制作的代码上线。我在 master 上提交更改。当我这样做时,它也会将我 50% 的分支代码提交给主提交。这就是问题
  • @MohanPrasad 所有你需要做的之前 翻转回到主人是添加和提交你的文件。然后你就可以放心地转回master,并且只看到master文件。
  • @MohanPrasad 同样,我编辑的答案解决了您当前的情况,您的提交“太大”,因为它包含不应该存在的文件。
猜你喜欢
  • 2021-08-28
  • 2019-09-08
  • 1970-01-01
  • 2017-09-17
  • 2017-03-20
  • 2017-09-07
  • 1970-01-01
  • 2013-09-21
  • 2020-01-21
相关资源
最近更新 更多