5

Flask リポジトリをフォークし、その Web サイト ブランチを GitHub から次のように複製しました。

git clone --recursive https://github.com/lovesh/flask.git -b website

次に、次のようにリモートを構成しました

git remote add upstream https://github.com/lovesh/flask.git -t website
git fetch upstream

次に、変更を加えました(追加のファイルは作成しませんでしたが、2つのファイルを変更しました)その後、ファイルを追加し、このような変更をコミットする必要がありました

git add .
git commit .

これにより、コミットのコメントが求められ、コメントを入力しました。今、それは私を示しました

2 files changed, 69 insertions(+), 7 deletions(-)

しかし、これらの変更を GitHub アカウントにプッシュしようとすると

git push origin master

それはエラーを示しています

error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/lovesh/flask.git'

私が周りを見回したところ、この問題を抱えていた人々は、ここここのように変更をコミットしていないと言いました。しかし、それでもコミットしましたが、このエラーが表示されます。私が試したことを確認するために

git status 

そしてそれは示した

# On branch website
# Your branch is ahead of 'origin/website' by 1 commit.
#
nothing to commit (working directory clean)

git logログに私のコミットも表示されます。私はgitが初めてです。何か不足していますか?

4

2 に答える 2

1

まず、リポジトリのクローンを作成した後、マスターブランチがありません。
git clone詳細:

--branch <name>
-b <name>

新しく作成されHEADたものを、複製されたリポジトリが指すブランチにHEADポイントする代わりに、<name>代わりにブランチをポイントします。
非ベアリポジトリでは、これはチェックアウトされるブランチです。
--branchまた、タグを取得HEADして、結果のリポジトリ内のそのコミットでデタッチすることもできます。

したがって、あなたの場合、ローカルWebサイトのブランチを作成して元の場所まで追跡する場合は、次のことを行う必要があります。

git push -u origin website

(その後は、単純なgit pushもので十分です。「git --vs push currentpush upstream(tracking)」のプッシュポリシーの詳細)


他のリモート' upstream'もupstream/websiteブランチのみを追跡します:

git remoteドキュメントには次のように記載されています。

オプションを使用-t <branch>すると、リモートがの下のすべてのブランチを追跡するためのデフォルトのglob refspecの代わりに、追跡するためrefs/remotes/<name>/ namespaceのrefspecのみ<branch>が作成されます。すべてのブランチを取得せずに、複数のブランチを指定して複数のブランチを追跡できます
-t <branch>

あなたの場合、デフォルトのrefspec()ではなくupstream/website( )のみを追跡しています。+refs/heads/website:refs/remotes/upstream/website+refs/heads/*:refs/remotes/upstream/*

于 2012-12-27T16:49:06.790 に答える
1

この名前でmastergit push origin website ブランチを構成した可能性があります。試してみて、私に知らせてください。

于 2012-12-27T16:39:22.777 に答える