【发布时间】:2016-12-03 13:13:15
【问题描述】:
我是从 Git 开始的,但我并不完全了解分支是如何工作的。 我开始了一个基本项目,我做了以下事情:
- 从 'master' 本地分支开始,创建 2 个文件:1.txt 和 2.txt。添加这些文件。提交和推送。 => origin/master 现在有这两个文件。
- 从 'local/master = head/master' => wip_12_pushed 创建一个正在进行的分支 (wip)(它应该有文件 1 和 2)
- 仍在本地 master 中,再创建两个 文件 (3,4)) 但甚至不添加它们。
- 从 'local/master' 创建一个分支 => wip_34_not_added(我想这应该仍然只有文件 1,2... 因为 3,4 还没有添加)
- 在本地 master 中,再创建两个 文件 (5,6),添加、提交并推送它们。
- 从 'local/master' 创建分支=> wip_files_56_pushed(因此应该推送文件 1、2、5、6)
- 在本地 master 中,再创建两个 文件 (7,8),添加它们,提交它们但不要推送它们
- 从 'local/master => wip_78_committed_only 创建本地分支(所以这应该有文件 1,2,5,6(全部推送),不确定 5,6。它们是否应该出现在新分支也提交了吗?)
我必须理解的问题是,当我切换到这些不同的分支时,我真的看不出我的 windows 命令行有什么不同?甚至去我的windows文件夹,所有文件都还在,所以我怎么知道哪个文件属于哪个分支?
更重要的是,我切换到分支 'wip_56_pushed',该分支是在对文件 7 和 8 执行任何操作之前创建的。然后我从该分支执行了 git push --set-upstream origin wip_56_pushed 并以某种方式处理了文件 7和 8 仅在本地/master 中处于提交状态并且“wip78_committed”也被推送到远程源/master 中?我期待这个 'wip_56_pushed' 分支没有对新文件有什么想法吗?
【问题讨论】:
-
请提供您发出的确切命令。
-
我使用的唯一命令
git push --set-upstream origin wip_56_pushed。所有其他操作都是在 Windows UI 中使用 TortoiseGit 完成的。基本上,我不知道在哪里可以看到哪些文件属于哪个分支(因为所有文件都在同一个 windows 文件夹中)。而且我不明白为什么当我使用上面的命令推送分支“wip_56_pushed”时,我的 origin/master 也收到了文件 7 和 8(它们已提交但仅在其他分支中)? -
啊,我想我现在知道你的问题了。
-
除了 Vampire 的回答之外,请记住,关于分支名称有很多历史包袱,因此您可以设置或调整 40 多个配置选项,其中大部分您希望避免可能的。保持本地名称
foo与上游origin/foo匹配,即origin上另一个Git 上的foo,你会更快乐。 -
感谢 torek,我今天几乎花了整个时间,但在尝试从一个本地分支合并到远程分支并切换分支时仍然遇到问题)。我会尽量让它尽可能简单,因为在我们的项目中我们不需要任何花哨的东西......
标签: git github git-branch branching-and-merging