如何推送临时更改?

5

我是一个Git初学者。这里是我的问题:

  1. 我想推送代码以记录我的努力和变更历史记录。
  2. 新的代码还没有完成,会出现错误。

有没有一种方法可以“轻轻地”推送更改,只是为了展示我正在开发的内容,但不会更新其他人拉取分支时的本地文件?

通常我会这样推送代码:

git add .
git commit -m "this code doesn't work yet, and shouldn't be pulled"
git pull origin myBranch
git status
git pull origin myBranch

我应该使用什么来完成这个任务?新分支还是派生分支?我对术语不太确定,如果我知道的话,我可以轻松谷歌它。
4个回答

6

不需要。只需推送到另一个分支即可。这是分支策略的问题,需要您的团队定义。


好的,所以我应该为这种情况创建一个“WillBreak”或“Dev”分支,但这是我的团队应该商量的事情,还是自己创建一个Dev分支没有什么大不了的?当代码稳定后,我会将其推送到原始分支上,对吗? - Travis Heeter
1
如果你正在推送自己的功能分支,而你的团队正在将其合并到主分支中,而你没有使用分支请求提交你的分支,则你面临的是团队问题,而不是Git问题。你应该能够随意推送自己的分支,而不必担心破坏任何东西。这就是分支的作用。 - jeffdill2
当你的开发/特性/其他分支准备好后,你将其与主/稳定/集成分支合并。这样,除非他们选择查看你正在进行的工作分支,否则没有人会看到更改,但你仍然记录了所有更改。 - Useless
@TravisHeeter,你可以随意命名你的分支。不需要在其后添加“WillBreak”或“WIP”。因为分支本身就是一个工作进展,这一点是理解的。如果你的队友不想使用有问题的分支,他们也可以选择不拉取它。 - jeffdill2

2
如果你将更改推送到远程仓库,你的团队成员将会看到这些更改,因此一个好的实践是创建一个feature分支(参见git-flow建议),它将被合并到当前分支中。
在这个特性分支中,你可以提交无用的提交,如果你提交了糟糕的提交消息也没关系,但是一旦你准备将特性分支合并到你的团队使用的分支中,你可以在git rebase -i之前运行这个命令,以便重写历史,只保留有用的提交消息。

0

你可以将你的工作提交到尽可能多的本地分支(即存储在你的工作副本旁边的.git目录中),而无需将它们推送到另一个仓库(例如位于中央服务器上的仓库)。

这样,你就可以记录下你的工作,而不会影响其他人。

一旦你确定你的工作已经准备好供他人使用,你就可以进行推送。


好的,在 Git Bash 中会是什么样子? - Travis Heeter

-1

git中不存在“轻量级”分支。没有办法创建一个远程分支,使其可供他人拉取,但不会修改本地工作树。

您需要推送一个标记为未完成的分支。一种流行的方法是在分支名称或提交消息中添加[WIP],以表示它们是“正在进行的工作”:

https://docs.gitlab.com/ce/user/project/merge_requests/work_in_progress_merge_requests.html

https://gerrit-review.googlesource.com/Documentation/config-plugins.html#wip

或者从https://github.com/blog/1943-how-to-write-the-perfect-pull-request中了解更多:

如果Pull Request还在进行中,请明确说明您需要反馈的时间。在标题前加上“[WIP]”是一种简单常见的模式,用于表示这种状态。


好的,所以我应该执行git push origin myBranch[WIP]而不是git push origin myBranch - Travis Heeter
给分支命名为 myBranch[WIP] 对我来说很好,但你需要告诉团队成员它的含义。 - Arkadiusz Drabczyk
分支本质上是“正在进行的工作”。您不需要在分支名称中包含“WIP”。 - jeffdill2
我不同意这个观点。代码库中可能有多个分支,只有其中一些适合合并到稳定分支,有些可能被推送为备份或概念验证。而且我不会把 master 分支称为“正在进行中”的分支 - 它应该是稳定的。 - Arkadiusz Drabczyk
但是谁在谈论“拉取请求”? “OP”只想推送一个分支。在某些系统中,例如“Gitlab”,您无法合并名称中带有“WIP”的“拉取请求” - 这是“Gitlab”的内置功能。在“Gerrit”中有“草稿”。我同意所有分支最终都应合并到稳定的分支或放弃,但可以阻止人们在完成之前推送未完成的代码,以便在错误更容易避免的早期阶段收集他人的意见。 - Arkadiusz Drabczyk
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接