如何让“git pull”再次按预期工作

And*_*ott 2 git

我正在使用 msysgit(Windows 版 Git)。过去,运行“git pull”会自动“git fetch”,然后使用上游的新 HEAD 在每个分支上重新调整我的更改。现在似乎“git pull”通常只是给我错误,说明我的配置文件中没有设置“branch.*.merge”。当这之前工作时,我没有在我的配置文件中做任何特别的事情。这是我创建本地分支机构的方式吗?我通常这样做:

git checkout -b localbranch origin/remotebranch

这是创建分支以便“git pull”自动合并它们的最佳方式吗?(因为它似乎对我不起作用)

Rob*_*anu 5

您的配置文件中需要类似于以下内容:

[branch "master"]
    remote = origin
    merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

如果需要为现有分支添加此信息,可以使用以下命令:

git branch --set-upstream mybranch origin/remotebranch
Run Code Online (Sandbox Code Playgroud)

如果您要创建新分支,则可以使用以下命令之一确保该分支是远程跟踪分支:

git branch --track mybranch origin/remotebranch
git checkout --track -b mybranch origin/remotebranch
Run Code Online (Sandbox Code Playgroud)

但是,--track应该是默认的。如果不是,则该设置branch.autosetupmerge可能设置为 false。要重置它,您可以将其设置为 true 或取消设置:

git config --global branch.autosetupmerge true
git config --global --unset branch.autosetupmerge
Run Code Online (Sandbox Code Playgroud)