我的项目目前有两个分支master
和feature
,而我正在feature
分支上工作。
完成后,我已经对bitbucket
执行了git push并在pull request
仪表板上执行了bitbucket
。
现在一切都完成了,我回到终端,我仍然在feature
分支,所以我要做的是git checkout master
切换回master
,我得到了消息
切换到分支“ master”
您的分支机构的最新信息是“来源/主”
我以为这意味着我的本地工作区实际上已更新并与远程源同步,但这是错误的,因为我运行了git pull
并进入了下层
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From https://git.domain.com:1234/bitbucket/xx/xx
256c6bc..0a3bb4f master -> origin/master
Updating 256c6bc..0a3bb4f
Fast-forward
.eslintrc.js | 15 +-
App/Containers/xx.js | 363 ++++++++++++++++++------------------
App/Containers/xxa.js | 594 +++++++++++++++++------------------------------------------
3 files changed, 352 insertions(+), 620 deletions(-)
在这一点上,我有点认为没有魔术,master
分支在魔术上不会与远程起源相同,因此我将需要git pull
。
master
时,消息Your branch is up to date with 'origin/master'
有点误导吗?答案 0 :(得分:3)
简短答案
使用您的Git存储库中的数据,myrecordstable
,git status
,git checkout
之类的Git操作都是脱机执行的。
要想知道您的分支机构是否真的与远程服务器保持最新,要做的是从git commit
开始。这将从远程服务器检索数据,并更新git fetch
和原始站点上的其他分支。
然后,origin/master
会告诉您分支的来源已过时。
我在git status
上的2美分
我不是git pull
的粉丝,因为您真的不提前知道它会做什么:简化一点,或多或少等同于{{1} }后跟git pull
,但两者之间仅自动检查。
我更喜欢此工作流程:
git fetch
git merge
,git fetch
和/或git fetch
和/或git status
的日志来分析结果git log
或git diff
,甚至有时是git merge
,具体取决于我的分析,可能有一个临时的dev分支或一个git rebase
我的工作流程比简单的git pull
还要工作,但是我知道在进行任何更改之前会发生什么。
答案 1 :(得分:1)
关键部分是git
中的任何分支实际上有3个“副本”:
当git status
告诉您“您的分支的'origin / master'是最新的”时,它将比较#1和#2。执行git fetch
是#2更新为与#3匹配的方式。
简而言之,您是正确的,没有魔术。在您的计算机上,origin/master
不会自动与实际遥控器保持最新。
答案 2 :(得分:0)
那时,Your branch is up to date with 'origin/master'
如预期般显示。但是在直到下一次提取/拉取的期间内,远程存储库中的master
可能会根据您或其他人的拉取请求进行更新,并且由于非快进合并的缘故,可能会创建新的提交。结果,您的本地master
(和origin/master
)将在远程存储库中的master
之后进行几次提交。 git pull
将获得新的提交以更新origin/master
和master
。