我已经对这个问题进行了很多搜索,但没有找到答案,尽管这似乎是一种常见的情况。对不起,如果它仍然是重复的。
我使用 Git 来管理我的 Java 源文件。我是唯一的开发者。我在 LAN 共享上创建了一个“远程”存储库。我定期将我的主分支“推送”到这个远程存储库,因为 LAN 共享可以安全地防止数据丢失(它已备份)。我在 Windows 上使用 TortoiseGit,我不使用 Git 命令行。
通常,我会同时开发 2-3 个新功能。我为每个特性(又名特性分支)创建了一个新的 Git 分支。当我完成一个功能时,我通过创建一个“合并提交”将它合并到 master。这工作正常。
合并后,我将我的主分支“推送”到远程存储库,以便我的更改是安全的。我的问题是这并不完全符合我的要求。我的“合并提交”被推送到远程没有问题。但是,我的功能分支中的所有提交也会被推送。我不想要这个。在我的远程存储库中,我只想看到一个“干净的”主分支。我的功能分支包含各种中间提交。显然,这些在我的远程存储库中是不需要和混淆的。
我使用 TortoiseGit 1.8.15.0。当我“推送”我的更改时,弹出窗口的“参考”部分显示 Local=master,Remote=master。此外,未选中“推送所有分支”(默认)。在窗口的底部,一切都是默认的,这意味着只有“自动加载 Putty Key”被选中。
我做错了什么,我怎么能在我的遥控器上实现一个“干净”的主分支?
附加信息:我的分支结构看起来像git-merge 手册页上的那个
A---B---C feature1
/ \
D---E---F---G---H master