// create branch
git checkout -b mybranch
(do work)
// commit to branch locally
git commit -a
// push to remote
git push origin mybranch
(repeat)
私たちのブランチで作業を完了したら、我々はマスターにブランチをマージ:
// go to master
git checkout master
// update
git pull master
// merge our branch into master
git merge mybranch
(solve conflicts)
git push
今、私たちはただ上記の手順を繰り返して、作業の流れは数日間はうまくいった。今や誰もが突然、他のグループメンバーのブランチとマスターで非フォワードアップデートを取得しています。例えば、誰かがマスターの中で引っ張られてからマージされても、押し込めません。それは非早送りプッシュと言います。これはマスターが完全に最新であると言うと非常に奇妙です。
次はgitのプル直後で、Gitのマージmybranch、Gitのプッシュ:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:foo/project.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
はまだgitのプルは、私たちが最新であると言います。
GIT内の大きなグループで期待されるワークフローは何ですか?どのように分岐機構を扱うべきですか?
ありがとうございます!
git checkout masterを使用できるときに再クローン化する理由git reset --hard origin/master? – chazomaticus
@chazomaticus自分のローカルリポジトリに何が行われたのか分かりません。私たちが知っている限り、「起源」は2つの異なることを意味しています。新鮮なスタートは清潔で曖昧ではありません。 – Borealid
Borealidはおそらく、例えばrebaseのために歴史が書き直されているのは正しいでしょう。 myブランチを他の人と共有しなければならないかぎり、起源が多くの不必要な「mybranch」でスパムされるため、地元のローカルブランチを維持して起点にしないことを追加するだけです。 – ralphtheninja