問題タブ [git-workflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
155 参照

git - Git の新機能を組み合わせたリファクタリングを行うには、どのようなワークフローが最適でしょうか?

ソースコード管理ツールとして Git を使っています。今のところ、私のワークフローは単純です。

  • 最小限の新機能/リファクタリングについて考える
  • コード化する
  • HEAD で差分を確認する
  • 専念

より柔軟にすることで、このワークフローを改善したいと思います。その理由は、次の状況に数回遭遇したためです。これは典型的なものだと思います。

コミット後、新しい機能を追加するために作業ディレクトリを変更し始めています。

しばらくコーディングして、この時点で作業ディレクトリの状態を A にします。ここで重要なことは、新しい機能がまだ完成していないため、作業ディレクトリはコミットする準備ができていない状態 A であるということです。

この時点で、最初にリファクタリングを実行したほうがよいことに気付きました。確かに、コード変更の過程でリファクタリングの必要性が明らかになることがあります。

ここで、HEAD からやり直して、最初にリファクタリングを行う必要があります。しかし、コード HEAD -> state A の変更を失いたくないので、基本的には次のことを行う必要があります。

  • 最後のコミット後にまだ変更されていない作業ディレクトリのコピーでリファクタリングを行う
  • コミットする
  • 私が開始した新機能の作業をマージし、作業ディレクトリが状態 A のときに停止しました
  • 新機能の作業を完了する
  • コミットする

これは分岐が役立つ場所だと思いますが、正しい git コマンドを理解するのに問題があります。コミット後に作業ディレクトリが変更されたときにブランチを作成する必要があるという事実に混乱しており、これを処理する正しい方法がわかりません。

Git コマンドに関して上記のワークフローを説明する正しい方法は何ですか?

0 投票する
1 に答える
937 参照

git - github like workflow on private server over ssh

I have an server (available via ssh) on the internet that my friend and I use for working on projects together. We have started using git for source control. Our setup currently is as follows:

  • Friend created repository on server with git --bare init named project.friend.git
  • I cloned project.friend.git on server to project.jesse.git
  • I then cloned project.jesse.git on server to my local machine using git clone jesse@server:/git_repos/project.jesse.git
  • I work on my local machine and commit to the local machine. When I want to push my changes to the project.jesse.git on server I use git push origin master. My friend is working on project.friend.git. When I want to get his changes I do pull jesse@server:/git_repos/project.friend.git.

Everything seems to be working fine, however, I am now getting the following error when I do git push origin master:

Is this warning anything I need to be worried about? Like I said, everything seems to be working. My friend is able to pull my changes in from my branch. I have the clone on the server so he can access it since he does not have access to my local machine. Is there something that could be done better?

Thanks!

0 投票する
1 に答える
38 参照

git - git リポジトリ内のオブジェクトの履歴コンテンツをどのように変更しますか?

最終的にはオープン ソースとして公開する予定のローカル git リポジトリがあります。最近、ファイルの 1 つにパスワードが含まれていることに気付きました。明らかに、リポジトリを公開する前に、履歴全体からそのパスワードを打つ必要があります。

A: その特定のファイルのすべてのリビジョンの履歴にアクセスして変更する方法はありますか?

B: 代替案の 1 つは、単純に HEAD のクリーン バージョンを公開することだと思います。

0 投票する
1 に答える
425 参照

git - すでにマージされているgitトピックブランチを変更するためのベストプラクティス

私の会社では、新しいストーリーをコーディングするときに次のgitワークフローを使用しています。

  1. マスターからトピックブランチを作成します(本番/安定版)
  2. 機能を実装するために必要な数のコミットを作成します。
  3. そのトピックブランチのgitmerge--squashをqaブランチに実行します。
  4. QAの人々がレビューします。
  5. 良ければ、コードはuaブランチにマージされます。User Acceptanceチームがそれを祝福すると、マスターにマージされ、最終的に展開されます。
  6. レビューに失敗した場合、開発者は修正する必要があります。基本的に、ステップ2でプロセスを再開します。

注:ポイントコードがqaブランチにマージされ、qaがそれを拒否/受け入れるまでに最大2週間かかる場合があります。

問題がなければ、コードは最終的にそれをマスターにします。ただし、QAが問題を発見し、それを修正する必要がある場合のベストプラクティスを探しています。私が望んでいるのは、可能な限り「元の状態」に見えるqaブランチになってしまうことです。

私が見ているように、ここにオプションがあります:

  1. qaブランチで元の押しつぶされたコミットを元に戻し、qaからトピックブランチをリベースし、トピックブランチでコードを修正し、qaに再度マージします。問題:厄介な復帰コミットを残します。
  2. 既存のトピックブランチを削除し、qaブランチから再作成し、問題を修正するための簡単なコミットを作成し、qaにマージして戻します。問題:機能のコード変更を、時間と場所が異なるコミット全体に分散させます。
  3. qaへの押しつぶされたマージを廃止し、個々のコミットをqaから既存のトピックブランチにリベースし、別のコミットで修正し、qaにマージします。問題:複数のコミットにより、変更がuaブランチに移動してからマスターに移動するときに、変更を追跡することが困難になります。

質問:マージされたコードを修正する必要がある場合に、単一の機能の複数のコミットを複数の長期的なブランチ(マスター->トピック-> qa-> ua->マスター)に移動するためのベストプラクティスはありますか?

0 投票する
1 に答える
235 参照

git - この git ワークフローをセットアップするには?

次の git ワークフローをセットアップできるようにしたいのですが、rebase、remote など、どのコマンドを使用すればよいかわかりません。

  1. Git リポジトリへの読み取り専用アクセスしか持たないオープン ソース プロジェクトのクローンを作成する
  2. プロジェクトに変更を加えて、それらの変更を私のプライベート github リポジトリに保存します - それを「開発」と呼びましょう
  3. 開発の変更が安定したら、「ステージング」に移行します
  4. 「ステージング」がテストされたら、変更を「本番」に移動します
  5. リモート オープン ソース プロジェクトを同期し、常に変化しているため、たとえば毎週同期してから、プロセス全体をもう一度開始します。

ありがとう

0 投票する
4 に答える
11196 参照

git - gitでコミットの特定のハンクを元に戻すにはどうすればよいですか?

コミットの特定のハンクをすばやく元に戻す方法があるかどうか疑問に思っています。

diff2つのコミットの間に生成するかHEAD、違いを確認できます。

それらのハンクの1つだけ(またはさらに良いのは、特定のハンクのセット)を元に戻すにはどうすればよいですか?

0 投票する
10 に答える
1963089 参照

git - 別のブランチから Git にブランチを作成する

masterdevの 2 つのブランチがあります。

devブランチから「feature ブランチ」を作成したいと考えています。

現在、ブランチ dev で、私は次のことを行っています。

... (いくつかの作業)

しかし、ブランチを視覚化した後、次のようになりました。

つまり、ブランチが ff マージされたように見えますが、その理由がわかりません...

私が間違っていることは何ですか?

別のブランチから分岐して、フィーチャー ブランチのリモート リポジトリにプッシュ バックする方法を教えてください。

here で説明されているような分岐モデルのすべて。

0 投票する
3 に答える
3062 参照

git - ウェブサイトの複数のバージョンを作成するには、Git リポジトリとブランチをどのように編成すればよいですか?

私は Git に移行したいと考えている SVN ユーザーです。一日中ドキュメントとチュートリアルを読んでいますが、まだ答えのない質問があります。このワークフローが理にかなっているのかどうかはわかりませんが、私の状況とワークフローから得たいことは次のとおりです。

  • 複数の開発者、全員がワークステーションでローカルに開発中
  • Web サイトの 3 つのバージョン: Dev、Staging、Production

これが私の夢です:

開発者は自分のブランチ (たとえば "developer1") でローカルに作業し、ローカル マシンでテストし、変更をコミットします。

別の開発者は、これらの変更を自分のブランチにプルダウンできます。developer1 -> developer2 をマージします。

作品が一般に公開される準備ができたら、開発、ステージング、または本番に「プッシュ」できるようにしたいと考えています。

または多分

わからない。私が言ったように、私はまだ Git に不慣れです。

ここに私の主な質問があります:

  • 私の Web サイト (開発、ステージング、本番) はリポジトリである必要がありますか? そして、新しい変更の受信者になるために、それらは「むき出し」である必要がありますか?

  • 複数のブランチを持つリポジトリが 1 つ必要ですか、それとも複数必要ですか?

  • これは理にかなっていますか、それとも私は間違った道を進んでいますか?

私はたくさんのチュートリアルを読んだので、誰かが私の特定の状況で私を助けてくれることを本当に望んでいます. 本当にありがとう!

0 投票する
3 に答える
2951 参照

git - 複数のステージング/本番環境向けの git-flow

同じコード ベースを共有する複数の Web サイトを含むプロジェクトに git-flow を適用しようとしています。

私は現在、多くのフィーチャー ブランチ、1 つの開発ブランチ、1 つのサポート ブランチ、および多数のプロダクション ブランチ (サイトごとに 1 つ) を使用しています。これは、一部の構成ファイルがサイトごとにカスタマイズされているためです。

git flow ツールは、多数の master/production ブランチを提案するのではなく、単一のブランチを提案します。 私に何ができる?

0 投票する
3 に答える
42485 参照

git - ローカルマシンにgitリポジトリを設定する

ローカルシステムにgitリポジトリを設定するにはどうすればよいですか?(私はウィンドウズボックスにいます)

これは私が達成しようとしているセットアップです:(すべてが私のローカルマシン上にあります)

  • ホストフォルダ(中央リポジトリのように機能します)
  • クライアントフォルダ

すべての開発をクライアントフォルダーで実行したいと思います。完了したら、それをホストフォルダにプッシュしたいと思います。


これは私がやったことです:(ウィンドウでgitbashを使用して)

  • cd d:/ adinsert
  • mkdirホスト
    • cdホスト
    • git init

CDC:/

  • mkdirクライアント
    • cdクライアント
    • git init
    • git remote add origin d:/ host //クライアントフォルダーにいくつかのファイルを追加し、それらをコミットしました
    • gitプッシュオリジンマスター

ものをオリジンにプッシュすると、gitは多くのリモートエラーを吐き出します。ただし、ホストをベアgitにすると、正常にプッシュされます。

通常のgitとベアgitの違いがわかりません。マニュアルから、私が理解したのは、デルタを保存するために、そして元のファイルを保存したくない場合に、裸のgitが使用されるということだけでした。ただし、ファイルをホストに保存したいのですが。どうやってやるの ?