如果我在与 合并后推送到分支master
,git 将如何处理它(将分支中推送的最新提交更新为master
自动或不执行任何操作或执行其他操作)?
2 回答
合并后,您仍然有 2 个分支,一个是您合并的分支,另一个是您合并到的分支,通常仍然是您的活动分支。
新提交将转到已签出的分支,即 master 或其他分支。
请注意,我们不会推送到分支:我们提交到分支并将分支推送到远程存储库。而且我们不更新提交,我们将新提交添加到存储库。提交永远不会改变。
加法- 当然,您仍然可以推送到“旧”分支。并再次将其合并到 master 中:
A - B - - - E - G [master]
\ / /
C - D - F [issue_202]
但我更喜欢创建一个新分支来解决问题。这是工作流程的问题。假设工作是基于票证的,那么 issue_202 票证会在您合并到 master之前解决。所以在我看来,额外的工作不是对 issue_202 的修复,而是对 master 分支的修复,因此我将创建一个新票证和一个新分支来解决这些问题:
F [issue_202_1]
/ \
A - B - - - E - G [master]
\ /
C - D [issue_202] [
在 Git 中,提交是存储库的快照加上指向一个或多个父级的指针以及一些元数据(如作者和提交消息)。
分支是指向某个提交的指针。而已。
当你推送一个分支时,你更新了远程的指针以指向与你相同的提交。此外,您的本地 repo 和远程 repo 协商远程缺少哪些快照并将这些快照发送到远程。否则,新更新的远程分支将指向一个它一无所知的提交。
所以,如果你推送一个分支,只有那个远程分支会改变。所有其他远程分支将指向与以前完全相同的提交。也就是说,git-config(1) push.default
可以轻松推送超出您预期的内容。我推荐git config --global push.default nothing
。
您可能应该多阅读一些关于Git 分支的内容。