如果本地不存在,如何拉取远程 Git master?

How to pull remote Git master if it doesn't exist locally?

我在我的笔记本电脑上创建了一个 Git "newfeature" 分支,实现了一个新功能,然后将新功能合并到我的 master 分支中。在开发新功能时,我还在生产服务器上创建并拉取了这个新功能分支,以便在那里进行测试。现在我已经完成了这个分支,我想在我的生产服务器上删除它并将我更新的主分支拉到生产中。我该怎么做?

这是我在生产服务器上看到的:

% git branch
* newfeature
% git ls-remote
4f533....  HEAD
4f533....  refs/head/master
4f533....  refs/head/newfeature

如果我试图拉下 master,我会看到:

% git pull origin master
* branch      master    -> FETCH_HEAD

我试图让 HEAD 指向 master 但这不起作用:

% git update-ref HEAD master
fatal: master: not a valid SHA1

如果服务器上尚不存在 master 分支,我该如何用我新更新的 master 分支替换生产服务器上的这个 "newfeature" 分支?

谢谢!

您可以像之前那样将 master 分支拉到服务器。然后,如果它与 newfeature 相同,只需检查 master 并删除 newfeature:

git pull origin master
git checkout master
git branch -D newfeature