首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将git更改提取到尚未签出的分支中

将git更改提取到尚未签出的分支中
EN

Stack Overflow用户
提问于 2011-02-11 17:02:17
回答 3查看 873关注 0票数 3

我有一个包含两个分支的git存储库,1.0和master。如果我想在1.0上工作,我可以使用以下命令克隆它:

代码语言:javascript
运行
复制
git clone ssh://user@server/project -b 1.0 project-1.0

一切都很好。如果我发出git branch命令,我会看到:

代码语言:javascript
运行
复制
1.0

git branch -a看起来像这样:

代码语言:javascript
运行
复制
* 1.0
  remotes/origin/1.0
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

但是,如果其他人将更改推送到master,而我对1.0进行了更改并尝试推送,它将失败,因为我需要使用master更改更新我的存储库。为此,我签出master,拉出更改,然后切换回1.0:

代码语言:javascript
运行
复制
git checkout master
git pull
git checkout 1.0

但是,有没有一种更简单的方法,我可以拉出最新的更改,而不必先签出母版?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-11 23:16:28

根据您的git branch -a,您没有名为master的本地分支。因此,git log master应该不起作用。远程跟踪分支-即origin/master -总是在您获取时更新。因此,如果您想从origin远程查看master分支的日志,您所要做的就是git fetch; git log origin/master。听起来你不想拥有自己版本的master,因此git checkout master可能是一个错误,它只是混淆了你的工作流程。

但是,如果其他人将更改推送到主服务器,而我更改了1.0并尝试推送,它将失败,因为我需要使用主更改更新我的存储库。

这不是真的。只要没有人将不同的更改推到1.0,您就可以推到它。主分支没有什么特别之处。你可以使用git branch -d master (如果它已经偏离了1.0,它会通知你它已经合并到origin/master,但不是HEAD),因为你似乎对维护自己的master版本不感兴趣。

再说一次,有人推到master并不会阻止你推到1.0,而且你不需要仅仅为了检查origin/master而签出本地master

票数 1
EN

Stack Overflow用户

发布于 2011-02-11 17:13:29

如果使用git fetch origin,则将更新origin remote下的所有远程跟踪分支。这不会改变任何“你的”分支,但是你可以从任何远程跟踪分支合并到你的1.0分支。

最简单地说,git pull本质上就是一个git fetch后跟一个git merge

票数 3
EN

Stack Overflow用户

发布于 2011-02-11 18:58:00

在这种特殊情况下,当master可以快进到源/master时,我执行git push . origin/master:master (是的,它是一个点'.')。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4967187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档