我喜欢 git worktree,但不断遇到本地工作目录与远程分支不同的情况,即使 git pull 说“已经是最新的”。
这是我做的一点 MRE:
git clone --bare <url>main使用本地添加分支git worktree add maingit worktree add new-branch,cd编辑到其中并执行了git push.main-branch-change-1直接在main分支中添加了一个文件,然后new-branch在新的 基础上重新构建main,然后feature-branch-change-1在new-branch.git pull在本地new-branch显示“已经是最新的”,而提交哈希并git log清楚地显示本地不是最新的。该文件main-branch-change-1存在,但不存在feature-branch-change-1。git fetch --all在裸仓库中紧随其后的git pullinnew-branch没有任何变化。git pullinmain分支后跟git pullinnew-branch没有任何改变。我需要做什么才能同步这些更改?
一些截图:
正如 torek 在评论中指出的那样,该问题是由克隆引起的--bare。这是我从这里的“ThePrimeagen”中学到的东西(2 分钟)。但是,这个命令似乎可以解决所有问题,而不是在根目录下有一个完整的(非裸露的)存储库(我认为我不想要这样):
git config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
Run Code Online (Sandbox Code Playgroud)
我仍然需要git branch --set-upstream-to=origin/new-branch new-branch从new-branch文件夹中执行操作,该文件夹之前因“错误:请求的上游分支‘origin/main’不存在”而失败,但在执行上述命令后成功。
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |