2

「origin/develop」から「myBranch」というブランチを作成しました。myBranchでローカルの変更を行います。同時に、他の人がorigin / developmentに変更を加えているので、定期的にそのブランチをフェッチしてmyBranchとマージします(「gitpull」を使用)。追加してコミットし、「git push origin master」を使用して、ローカルブランチと同じ名前を共有するリモートリポジトリに変更をプッシュすると、ローカルの変更のみが表示されます。オリジン/デベロップからのすべてのマージされた変更は、私のローカルの変更と一緒にプッシュされていません。

また、「マスター」とはどうすればわかりますか?それは私が現在いるブランチですか?myBranchをリモートリポジトリにプッシュする方法に明らかに問題があります。

4

2 に答える 2

2

master は別のブランチ名です。だからあなたは間違ったものにプッシュしています。あなたがする必要があります

git push origin myBranch:develop

慣例は、ローカルの参照名:プッシュ先のレポの参照名です。コロンと姓を省略すると、同じ名前のリモート ブランチを意味すると見なされます。

引数を追加する-uと、myBranch がサーバー上で開発するように追跡が設定され、次のことができるようになります。

git push

それを行った後に構成を確認すると、git がこれをどのように記録するかがわかります。

cat .git/config

ただし、実際には独自のレポで開発する必要があります。あなたのワークフローは

git fetch  # will grab all the branches from the remote
git checkout develop  # will make a local develop branch that points to origin/develop
# do some work, commit, etc
git pull origin develop # this will merge for you
git push -u origin devolop # to set tracking

最後の 1 つは 1 回だけ実行する必要があり、その後はgit push.

また、デフォルトで現在のブランチのみをプッシュするように git をセットアップします。

git config --global push.default current

そうしないと、追跡が設定されている場合、ローカルにあるすべてのブランチがプッシュされます。

于 2013-01-10T01:34:43.857 に答える
0

私はこれを理解しました。それは: git push origin HEAD

私の「マスター」はローカルブランチを指していたと思うので、リモートリポジトリを更新することはありませんでした。

.git/config ファイルで master、origin、head などのポインターを表示できます。

助けてくれてありがとう!

于 2013-01-30T10:38:42.623 に答える