我正在尝试将更改推送到远程仓库,但由于某种原因我不能。
当我git branch
这就是我所看到的:
develop
feature/all_features
* feature/Tommaso
当我git status
时:
On branch feature/Tommaso
nothing to commit, working directory clean
我可以clone
来自开发的repo和pull
,但当我git pull
时,这就是我得到的:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> feature/Tommaso
我想问题是远程仓库没有我在本地创建的当前分支。
编辑:我不太清楚:我想在feature/Tommaso
中创建分支feature/allfeatures
。我为那些可能认为我试图创建develop
告诉我您是否需要其他信息来解决问题。提前谢谢
答案 0 :(得分:1)
我想问题是远程仓库没有我在本地创建的当前分支
我也认为这是问题所在。首先,push
当前分支带有-u
标志(设置为上游),然后尝试git pull
。
$ git push -u origin HEAD
N.B: -u = --set-upstream
告诉Git记住参数,以便下次我们可以简单地运行git pull
或git push
。
当你只运行git pull
而没有提到分支名称时,git会尝试从跟踪远程分支中提取。
$ git pull
如果你想拉另一个远程分支,那么只需提及分支名称。
$ git pull origin <branch-name>
如果您想要feature/Tommaso
的新分支feature/allfeatures
,请按以下步骤操作:
$ git checkout feature/allfeatures
$ git checkout -b feature/Tommaso
$ git push origin HEAD
现在,feature/allfeatures
和feature/Tommaso
具有相同的更改/提交。
答案 1 :(得分:1)
尝试以下命令。
$ git pull origin <branch_name>
$ git push origin HEAD:refs/for/<branch_name>
如果您想创建自己的集成分支。
$ git checkout -b <integration branch name> origin/<origin branch name>
$ git push origin <integration branch name>
答案 2 :(得分:1)
如果您正在使用分支机构,那么您必须与远程分支机构保持相同的分支以保持一致。假设你在远程仓库上有一个名为foo的分支,那么你必须在本地保留一个分支名称foo。
你是怎么做到的。假设您的本地仓库中没有名为foo的分支,那么您可以
$ git fetch
它将获取有关远程地址中所有分支的信息,这些信息可以从此命令的输出中清除。
然后你做一个git branch
来查看可用的分支。现在,您将能够在本地看到分支foo。做一个git checkout -b foo
这会将你的分支切换到foo。使用git log
查看您是否拥有远程其他分支的最新分支git pull origin foo
。现在您可以使用git push origin foo
。
您评论中提到的日志表明您正试图从其他分支机构撤出并与本地仓库中的其他分支机构合作。在开始工作之前切换分支,否则你将在合并冲突中运行并搞乱仓库
答案 3 :(得分:1)
正如其他已经说过的那样,没有名为
的分支使用此代码
git push origin <your branch name>
已编辑
你已经完成了吗? git remote set-url origin https://github.com/MyRepo/project.git
答案 4 :(得分:0)
如果您对 repo 有读但没有写权限,您可能会遇到这种情况。