6

私はgitを初めて使用し、非常に基本的なシナリオに取り組む方法を知りたいと思います。gitに関するstackoverflowに関する多くの投稿を読みましたが、それでも答えがわかりません。

誰もが取り組んでいるオリジン/マスターリモートブランチがあります。実装したいfeatureAがあり、開発に時間がかかる可能性があります。その間、人々はオリジン/マスターにコードをチェックインしている可能性があります。

次のニーズがある場合、ワークフローはどのようになり、gitブランチをどのように設定すればよいですか。

  1. コードの変更をブランチにコミットしてサーバー上のリモートブランチにプッシュできるようにしたいので、コンピューターが揚げられた場合に変更が失われることはありません。

  2. ブランチをマスターブランチで最新の状態に保ちたいです。

  3. 定期的なマージを最小限に抑えたい。私はgitrebaseの概念が好きなので、その使用を最大化して、早送りマージを行いたいと思います。

  4. ある時点で、ブランチFeatureAをorigin/masterにマージする必要があります。

要約:

オリジン/マスターからプルするがオリジン/MY-BRANCHにプッシュするブランチを設定するにはどうすればよいですか?

私のワークフローはどのようになりますか?

アップデート:

ありがとう@will-pragnell!ソリューションと以下のソリューションの違いは何ですか。

githubのこのページは次のことを提案しています:

https://github.com/diaspora/diaspora/wiki/Git-Workflow

開発トランクから最新の更新を取得するには、次のように入力して、メインのGitHubリポジトリをリモートとして確立するための1回限りのセットアップを実行します。

$ git remote add upstream git://github.com/diaspora/diaspora.git
$ git fetch upstream
$ git checkout master
$ git rebase upstream/master
$ git checkout 100-retweet-bugfix

[ブランチで必要に応じてすべてがコミットされていることを確認してください]

$ git rebase master
4

2 に答える 2

6

マスターからプルして自分のブランチにプッシュするブランチはおそらく必要ありません。必要なのは、マスターからローカルマスターにプルし、ローカルでリベースを処理してから、機能の独自のリモートブランチにプッシュすることです。これはかなり標準的なワークフローであり、完全な制御と最小限のマージを提供します。個人的に私はこのようにします:

新しいローカルブランチを作成します

git checkout -b myFeature

それを新しいリモートブランチにプッシュします(このステップの詳細が必要な場合は、このスタックオーバーフローの質問を参照してください)

git push origin myFeature

これで、マスターブランチを台無しにすることなく、必要に応じて上記のコマンドを使用してプッシュし、myFeatureブランチで問題なく作業できるようになりました。他の人がマスターで行ったコミットを取得する必要がある場合は、次のように行うことができます。

git checkout master
git pull (this will just fast-forward if you don't make any local changes to master)
git checkout myFeature
git rebase master

機能が終了したら、ブランチをマージまたはリベースしてマスターに戻し、他のすべての人が新しい機能を取得できるようにします。このような:

git checkout master
git merge myFeature
git push origin master
于 2012-01-20T10:58:06.567 に答える
0

git checkout -b FeatureA (ブランチの作成とチェックアウト)
git push origin FeatureA (新しく作成したブランチを元の場所にプッシュします)

新しいブランチFeatureAに取り組みます。頻繁にマージしてからリベースする必要はありません

git rebase origin  

将来的にはマスターにマージしたいときはいつでも。

git checkout master  
git merge FeatureA  
git push origin master  
于 2012-01-20T11:42:08.767 に答える