11

gerrit を使用する場合、デフォルトではすべての変更が前のものに依存しているようです。新しい変更のためにブランチを作成するのではなく、マスター ブランチから作業を行い、コミットされた変更をリモートのオリジン/マスターにプッシュするだけです。2 つのコミットが互いに関係なくても、依存関係は毎回作成されます。

git を gerrit と組み合わせて正しく使用していないと思わせるいくつかの問題に遭遇しました。

すべてのコミットが前のコミットに依存しないようにするには、私の git/gerrit ワークフローで何が異なる必要がありますか? また、変更のために新しいブランチを作成しようとしました:

> git pull origin master
> git checkout -b new_branch
> #make a change
> git add -A
> git commit #with gerrit's commit hook in .git/hooks
> git push origin <sha1>:refs/for/master

これは機能しますが、gerrit は以前にコミットされたアイテムへの依存関係を報告します。

4

3 に答える 3

13

これがGerrit依存関係の意味です-別のコミットの上にあるコミット。両方が審査中の場合、新しい方が古い方に依存します。

互いに依存させたくない場合は、コミットを重ねて作成しないでください。1 つのコミットを作成し、次のコミットのために master に基づいて新しいブランチを作成します

(git checkout origin/master -b NEW_BRANCH_NAME).

レビューのために 2 番目のコミットをプッシュすると、その親は既に公開されており、何にも依存しません。

于 2012-05-01T21:36:11.220 に答える
0

git reset --hard HEAD~1代わりにこれを使用します。

git reset --hard origin/master

仮定して、私はmaster迅速な変更のために働いています。

それ以外の場合は、トピックブランチで作業することをお勧めします。

トピックブランチの管理に役立つ多くのGitスクリプトがあります。

他にもあると思います。

于 2013-03-13T14:25:57.747 に答える
0

私はこれを回避するように教えられましgit reset --hard HEAD~1git push

于 2012-06-07T09:04:02.320 に答える