gpt4 book ai didi

svn - 维护一组不提交给 SCM 的小改动

转载 作者:太空狗 更新时间:2023-10-29 14:26:47 24 4
gpt4 key购买 nike

我正在使用 git,但我很高兴听到与其他 SCM 相关的答案。

我有一些只与我相关的小更改(使用不同的构建方案,仅与我的配置相关),我真的需要它们。

当然,正确的做法是将它 merge 到主干中,但是直到我将它 merge 到主干中,我必须保留一个不会提交的更改列表。

假设我需要更改我的 makefile 使其具有 CC=mygcc(因为我需要 gcc 符号链接(symbolic link)指向我正在编译的其他软件的错误版本),但我不不想提交(其他人不想,所以其他人不想拥有 mygcc 符号链接(symbolic link))。

我该怎么做才能轻松同步和更新主存储库?

最佳答案

这真的是对Elazar Leibovich's second option的评论这对于评论来说有点失控了:)在提交图术语中,我基本上会做与选项 2 相同的事情,但维护一个有我的更改的本地分支而不是留在 master 上。换句话说,通常的状态是这样的:

 A --- B --- C (master,origin/master) --- D --- E (local)

...如果我想从 master 更新,我会这样做:

 git checkout local
git fetch origin
git rebase origin/master

... 去:

A --- B --- C (master) --- F --- G (origin/master) --- D' --- E' (local)

如果我在 local 上添加了更多提交,我会将其设为 git rebase -i origin/master 以便我可以确保我的 DE 仍然是历史上最新的。

与 Elazar Leibovich 的选项 2 相比,它的优势在于它降低了您使用 git push 或不小心将本地更改推送到 master 的风险git push master,因为您的本地更改永远不会在 master 分支上,并且远程不应该有名为 local 的分支。 (如果有,选择不同的名字,显然:))

当你确实有一些东西想要推回到master时,例如这里的提交HI:

A -- B -- C (master) -- F -- G (origin/master) -- H -- I -- D'' -- E' (local)

...你会这样做:

git checkout master
git merge I
git push origin master

关于svn - 维护一组不提交给 SCM 的小改动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com