我使用的一个开源项目工具,发现它有 bug ,于是 fork 了一份,然后 git clone 到本地,直接在 main 分支上改了一下,push 之后,然后在 github 开了一个 pr ,最终代码被 merge 了。
这个项目是 macOS 的一个 app ,只要 xcode 打开,就会改动一些配置文件。虽然 git 提交时候肯定会避免提交这些改动,而且没办法在 gitignore 中忽略它。但稍微有点影响。
另外关于 AI 工具,原作者用的 cc ,我用的 codex ,用 codex 打开后会自动生成一些 skills/AGENTS.md 等,这些也不会提交,因为对原仓库原作者来说,这些是没用的信息。但最好也不要改 .gitignore ,毕竟万一后面作者会再换到 codex 呢。
所以每次提交后,会剩下一些配置文件和 AI 工具相关的文件。
后面原项目有很多次 git 提交,我想继续给这项目做贡献。那么现在的处境是:我的本地仓库和 fork 的 github 远端仓库没有同步到最新提交,而且由于都是在 main 上面的操作,导致已经分叉。
于是我在 github 上点了一下同步,并且把本地的代码库删掉,重新 clone 一份,基于这个最新的版本做开发。这样我还省去了 git stash 那些无用的文件改动。
但对于长期维护来讲,这样太麻烦了。为避免出现分叉和代码污染,正确的流程应该是:
git remote add upstream xxxgit pull upstream main && git push origin maingit checkout -b fix-bug-issue123git fetch upstream && git rebase upstream/maingit push origin fix-bug-issue123 然后去 github 点击提 pr除此之外,你们还有什么经验可以分享的吗?
1
cxhello 5h 43m ago 其实就是每次 fetch upstream rebase 然后基于 upstream 主分支建立你的开发分支就可以
https://github.com/alibaba/nacos/blob/develop/CONTRIBUTING_zh.md |
2
foolishcrab 5h 42m ago
长期维护的话你肯定是原 repo 的成员,说不定 agents.md 都要共享,所以不要简单问题扩大化,别想太多。现在关于 ai 相关的 md 怎么玩没有定论。
|
3
Orenoid 5h 21m ago 如果是想忽略某些文件但是不想改 .gitignore ,暂时加到本地 .git\info\exclude 里就行吧
|
5
Tink PRO 正常来说应该是分支做开发,然后 main 保持上游同步吧
|
6
wenrouxiaozhu 2h 33m ago
@ethusdt #4 也可以在用户 gitignore 文件指定...
❯ cat ~/.gitconfig 1 │ [credential] 2 │ helper = store 3 │ [core] 4 │ excludesfile = ~/.gitignore_global 5 │ editor = vim ❯ cat ~/.gitignore_global 1 │ **/.history 2 │ **/trash/** 3 │ **/tmp/** 4 │ **/log/** |
7
guanzhangzhang 36 mins ago
6 个步骤是对的,开源 pr 就是这样的流程,fork 后自己仓库作为 origin ,remote add upstream 添加原始仓库,后期 fetch upstream 即可,好多人都搞 bot 自动同步上游混 commit 次数让 github 活跃一片绿
|