我尝试多次运行:
git checkout mygithub/master
不幸的是,它没有检查这个分支:
git status
# Not currently on any branch.
nothing to commit (working directory clean)
那么我该怎么做才能签出分支并推送提交呢?
git clone git@github.com:myusername/myrepo.git
cd myrepo
git checkout master
然后编辑你的文件
git status
git add .
git commit
git push origin master
不幸的是,它没有检查这个分支
问题实际上是它确实检查了那个分支(或者更确切地说,那个分支头部的提交),但这不是你想要它做的。
一些背景知识:当您将远程 ( github
) 添加到本地存储库时,您的本地存储库会github/master
为该远程的所有分支创建“远程分支”( )。当您说 时git checkout github/master
,您是在告诉 git 让您离开任何本地分支,并将您的工作副本更新为该时间点远程仓库的状态。您只能在本地分支上提交,因此会出现问题。有关详细信息,请参阅文档git checkout
。
通过这样做git checkout master
,您正在做两件事:首先,最重要的是,创建一个名为的本地分支master
,默认情况下设置为跟踪它可以找到的具有相同名称的任何远程分支(希望github/master
在这种情况下),然后让您使用分支并使用其内容更新您的工作副本。请参阅文档git branch
(因为第一步是创建分支)和git config
下面的文档branch.autosetupmerge
以了解幕后发生的事情。