タグ付けされた質問 「git」

GitはオープンソースのDVCS(分散バージョン管理システム)です

4
gitの「リベースのゴールデンルール」はそれほど重要ですか?
最近、GITの機能ブランチのリベース戦略に絶対に反対する人々と議論しました。ローカルのプライベートブランチにのみリベースを使用することは受け入れられているパターンのようですが、この「リベースのゴールデンルール」と呼ばれるように、同じ機能とブランチで作業する複数の人がいる場合はリベースを使用しないでください://www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview) これにはコンセンサスがあることに驚いています。私は完全なリベース戦略で3年間働いたが、約20人の開発者が一緒に働いて、それがうまくいったことを推測した。 プロセスは基本的に次のとおりです。 機能ブランチを作成し、「myfeature」と呼び、origin / myfeatureにプッシュします。 他の人がそれをチェックアウトして作業するかもしれません マスターからリベースすることがあります: "myfeature"から、git rebase origin / master ; そして、はい、あなたはそれをプッシュする必要があります。 他の人がコミットをプッシュしたい場合はどうなりますか?彼らはそれをリベースするだけです:git rebase origin / myfeature。そのため、彼らは現在、早送りしており、無理なくプッシュすることができます。 尊重する唯一の原則は、機能ブランチが誰かによって所有されているということです。プッシュフォースできるのは所有者だけです。 だから、私は認める:プッシュ力があるとすぐに、エラーを起こすリスクがある。それは本当だ。しかし、エラーから回復する方法もたくさんあります。実際、3年間の開発では、強制的なミスはあまり見られませんでした。それが起こったとき、常に適切に回復する方法を見つけました。 それでは、なぜこの「リベースの黄金のルール」が広く受け入れられているのでしょうか?私がそれで逃した何か他のものがありますか?私はそれが最小限の組織を必要とすることを理解しています(すべての戦略は何らかの組織を必要とします)が、それは機能します。
22 git 

5
ローカルマシンでのみgitを使用するのは妥当ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 gitをローカルでのみ使用しても大丈夫ですか?プライベートリポジトリ(Githubなど)を提供するサービスに料金を支払う必要はありませんが、gitはクローズドソースプロジェクトを整理するのに最適な方法だと思います。

3
機能ブランチからマスターにマージする前のコードレビューの戦略
私と私のチームは機能ブランチを使用しています(gitを使用)。マスターにマージする前に、コードレビューの最適な戦略はどれかと思います。 マスターから新しいブランチをチェックアウトし、fb_#1と呼びます 私は数回コミットし、それをマスターにマージしたい 私がマージする前に誰かがコードレビューをすることになっています 現在、2つの可能性があります。 1日 私はマージ#1 FB_するマスターを(いない最新のできるだけそれを作るためにマスターにFB_#1) チームメイトがマスターヘッドとfb_#1ヘッド間の変更を確認します fb_#1で問題なければ、fb_#1をマスターにマージします 長所:廃止されたコードはレビューされていません 短所:他の誰かが「1」の間に何かをマージする場合 および「2.」彼の変更はレビューに表示されますが、別のレビューに属します。 2番目 チームメイトがチェックアウト(git merge-base master fb_#1)とfb_#1 headの間の変更をレビューします 長所:機能ブランチでの作業中に変更された内容を正確に把握できます 短所:一部の古いコードがレビューに表示される場合があります。 あなたはどちらの方が良いと思いますか、なぜですか?別のより適切なアプローチがありますか?

6
まだSubversionを使用する特定の理由は?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 会社のバージョン管理システムを選択したい。これまでのところ、Git、Subversion、Mercurialがあることを知っています。 最近、Gitが最もよく使用されていることがわかりました。そのため、まだSubversionを使用する特別な理由があるのでしょうか、それともGitに直接アクセスする必要があるのでしょうか。

4
私たちはSubversion Geeksであり、Mercurialの利点を知りたい[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私はSubversionオタクだということを読んだので、なぜMercurialやGitまたはその他のDVCSを検討すべきか、検討すべきではないのか。 関連するフォローアップの質問があります。私はその質問を読み、推奨されるリンクとビデオを読んで、その利点を見ましたが、人々が話している全体的なマインドシフトは見ていません。 私たちのチームは、60のプロジェクトで構成される1つの大きなコードベースで作業する8〜10人の開発者です。Subversionを使用し、メイントランクを持っています。開発者が新しいFogbugzケースを開始すると、svnブランチが作成され、ブランチ上で作業が行われ、完了したらトランクにマージされます。場合によっては、ブランチに長時間滞在し、トランクにブランチをマージして変更を反映することがあります。 Linusがブランチを作成し、二度とブランチを作成しないことについて話すのを見たとき、それはまったく私たちではありません。おそらく週に50〜100のブランチを問題なく作成します。最大の課題はマージですが、私たちもそれをうまく得ています。ブランチのルート全体ではなく、fogbugz case&checkinでマージする傾向があります。 リモートで作業することも、ブランチからブランチを作成することもありません。コードベースのそのセクションで作業しているのがあなただけなら、トランクへのマージはスムーズに進みます。他の誰かがコードの同じセクションを変更した場合、マージが面倒になり、手術が必要になる場合があります。競合は競合です。コードを理解できるほど賢くなければ、ほとんどの場合、どのシステムでもそれを正しく実現できるとは思いません。 ブランチを作成した後、以下の60k +ファイルのチェックアウトには時間がかかりますが、これは使用するソース管理システムの問題です。 DVCSには、私たちにとって大きな助けになるとは思えない利点がありますか?
22 git  svn  mercurial  dvcs 

1
リファクタリングはGitFlowブランチネーミングモデルのどこに属しますか?
私は最近、bitbucketで実装されたGitFlowモデルの使用を開始しました。そして、私には完全に明確ではないことが一つあります。 リファクタリングタスクをバックログ、計画、および実装することにより、技術的な負債に定期的に対処しようとしています。そのようなリファクタリングブランチは、でマージされたプルリクエストで終わりますdevelop。私の質問は、リファクタリングブランチはGitFlowのどこに属しますか? featureプレフィックスを使用することは最も論理的ですが、リファクタリングによって新しい機能が追加されることはないため、完全に正しいとは限りません。 しかしbugfix、実際のバグリファクタリングの修正がないため、プレフィックスの使用は適切ではないようです。 一方で、カスタムプレフィックスを作成することは、物事を過剰に設計しない限り複雑化するように思えます。 そのような状況はありましたか?これに対処するためにどのプラクティスを使用しますか?理由を説明してください。

2
大きなバイナリファイルを含むGitリポジトリを最適化する
私たちのプロジェクトは約11GBで、そのうち10個はバイナリデータ(.png画像)です。その結果、a git diffまたはgit status操作は1分以上かかります。幸いなことに、すべてのデータファイルは素晴らしい名前のフォルダに分けられていますdata。割り当ては、「バイナリファイルの圧縮、差分、およびその他のコストのかかる操作を避けます」です。 プロジェクトを2つのリポジトリに分割することを検討しました。次にdata、外部リポジトリになり、メインのソースコードリポジトリによってチェックアウトされます。特にデータファイルを操作するアーティストにとって、リポジトリの同期を維持するオーバーヘッドは大きすぎると判断されました。 gitにこれらのファイルを明示的にバイナリと伝え、差分からファイルを除外することを検討しましたが、これらは質問に対する部分的な解決策にすぎないようです。 git属性が解決策だと思いますが、どうやって?または、モノリシックリポジトリよりも優れたアーキテクチャがありますか?
21 git  binary 

4
Gitの.git / objects /フォルダーが多くのSHAプレフィックスフォルダーに分割されているのはなぜですか?
Gitは、オブジェクト(Blob、ツリー)を.git/objects/フォルダーに内部的に保存します。各オブジェクトは、オブジェクトのコンテンツから計算されるSHA1ハッシュによって参照できます。 ただし、オブジェクトは.git/objects/フォルダ内に直接保存されません。代わりに、各オブジェクトは、SHA1ハッシュのプレフィックスで始まるフォルダー内に保存されます。そのため、ハッシュb7e23ec29af22b0b4e41da31e868d57226121c84を持つオブジェクトは次の場所に保存されます.git/objects/b7/e23ec29af22b0b4e41da31e868d57226121c84 Gitがオブジェクトストレージをこのように細分するのはなぜですか? git-scmのGitの内部のページなど、私が見つけることができるリソースは、howではなく、howだけを説明しました。

3
ローカルリポジトリで単独で作業している場合、なぜプッシュする必要があるのですか?
私はGitHub for Windowsを介して Gitと対話していますが、これはリポジトリをGitHubにプッシュすることは決してないので面白いです。私はそれだけで取り組んでおり、私だけが使用することを意図しています。コミットが「非同期コミット」の下にリストされ、「履歴」の下に「コミットなし」と表示されていることに気付きました。「履歴」の下にリストされているコミットを除いてプッシュすることで何を達成できますか?
21 git  github 

4
githubチームのワークフロー-分岐するかどうか
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 私たちは現在Subversionを使用しているWeb開発者の小さなチームですが、まもなくgithubに切り替えます。 私はさまざまなタイプのgithubワークフローを検討していますが、各開発者向けのgithubのフォーク概念全体がこのような良いアイデアであるかどうかはわかりません。 フォークを使用する場合、各開発者は独自のリモートおよびローカルリポジトリを持つことになります。変更セットをプッシュするのが難しく複雑になりすぎるのではないかと心配しています。また、私の最大の懸念は、各開発者に2つのリモートを強制することです:オリジン(リモートフォーク)とアップストリーム(メインリポジトリからの変更を「同期」するために使用)。それが物事を行うためのそのような簡単な方法であるかどうかはわかりません。 これは、ここで説明されているワークフローに似ています:https : //github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow フォークを使用しない場合は、作業中のタスクごとにブランチを作成する中央リポジトリを使用して同じリポジトリの開発ブランチにマージすることで、おそらくうまくいくでしょう。つまり、ブランチのマージを制限することができず、中央リポジトリに多くのブランチを置くのは少し面倒かもしれません。 両方のワークフローを試したチームからの提案はありますか?
21 git  github 

1
最高のRuby Gitライブラリ?
Rubyで使用するのに最適なGitライブラリはどれですか? Git、Grit、Rugged、その他? 背景:私はGitで構築された分散オフラインチケットシステムであるTicGit-ngの現在のメンテナーです。私や他の人が非推奨だが機能しているGitから新しいGrit gemへの切り替えに失敗したため、ドキュメントの不足または機能の不足があるようです。
21 ruby  git 

3
GithubのようなGithubのような「プルリクエスト」
私は金融機関のアナリストとして働いています。金融機関はデータの機密性のため、クラウドにデータを保存しません。ただし、コード管理にGitを使用してチームを成功させることはできました。私たちのサーバーにGithubのようなプルリクエストを実装する方法があるかどうか疑問に思っていました。私が興味を持っている特定の機能は、特定のブランチに実際にマージせずに、コメントの変更セットを送信する機能です。(1)変更を送信し、(2)変更をレビューしてコメントし、(3)コミットを受け入れるか拒否するかのワークフローが好きです。これを独自のサーバーに実装できますか(さらに良いことですが、簡単に実装できますか)。
21 git  code-reviews 

3
git stashを使用してプロジェクトの進行中の変更を保存し、それをgithubにプッシュして他のコンピューターにアクセスする必要がありますか?
私は非常に頻繁にプロジェクトのいくつかの機能に取り組んでおり、コミットするのに十分である前に休憩を取る必要があります。しかし、私は毎日2台の異なるコンピューターを使用してコーディングしています(ラップトップと研究室のデスクトップ)。例:自宅で機能の作業をしているときに、停止してラボに移動します。 クラウドの同期(Dropboxなど)とGitHubリモートトラッキングを混在させたくありません。 作業を続行するために他のコンピューターにコードを引っ張る目的でのみ、以前にコードの未完成(および乱雑な)状態をコミット(およびプッシュ)しました。これは悪い習慣だと確信しています。 しかし、今日は、git stashグーグルで少し見つけました。それは私が必要なものに対する完璧な解決策のようです。 ただし、ドキュメントに、変更をプッシュした後にgithubに移動するかどうかは記載されていません。それに加えて、必要なモビリティを達成するためのより効率的な方法があるかどうかを知りたいです。 前もって感謝します!
20 git  github  gitflow 

5
なぜgitコミットには作成されたブランチの名前が含まれないのですか?
機能ブランチを使用してチームでgitを操作するとき、歴史上のブランチ構造を理解するのが難しいことがよくあります。 例: 機能ブランチfeature / make-coffeeがあり、機能のブランチと並行してmasterでバグ修正が続けられたとしましょう。 履歴は次のようになります。 * merge feature/make-coffee |\ | * small bugfix | | * | fix bug #1234 | | | * add milk and sugar | | * | improve comments | | * | fix bug #9434 | | | * make coffe (without milk …
20 git  branching 

4
個人のGitリポジトリを整理するにはどうすればよいですか?
私は、最近のiOSプロジェクトの一部として開発した1組のライブラリを、他のiOS開発者が自由に利用できるようにする計画で、GitHubアカウントを設定しています。 現在、ほとんどのコードのオフサイトバックアップはありません。そのため、当初、私はすべての個人プロジェクト、または少なくともすべてのiOSプロジェクトをGitHubがホストするプライベートリポジトリにアップロードすると考えていました。 。しかし、私は多くのプロジェクトを抱えており、その多くはかなり価値の低いものです(つまり、本を改造して学習体験のために書いたものです)。GitHubはプライベートリポジトリによって課金されるだけでなく、リポジトリを階層的に整理する方法もありません。 私が不足しているものがあり、階層でgitリポジトリを使用し、必要なときにそれらをチェックアウトしたり、現在SVNで行っている方法で作業したりできますか? GitHub(またはBitBucketのような競合他社)には、プロジェクト構成の機能がいくつか欠けていますか? それに失敗すると、この状況を処理する一般的に受け入れられている「Gitの方法」は何ですか(リリースを目的としていないプロジェクトを破棄し、オフラインで保存し、何らかの方法で一緒にバンドルするなど)。 私が知る限り、私のオプションは次のとおりです。 ライブラリをGitHubに配置し、他のすべてのプロジェクトで自分のSVNをホストし続け、オフサイトバックアップ(非難)に非VCSソリューションを使用し、 私がリリースする予定のライブラリとソフトウェアをGitHubに(それぞれパブリックおよびプライベートとして)入れ、あまり気にしないプロジェクトのために自分のSVNをホストし続け、XYZの実装方法に関する記憶を更新するために再訪する可能性が高い私の家が破裂した場合(二重の荒れ)、それらを消しても構わないと決めます。 [GitHubおよび/またはBitBucket]にすべてを配置し、必要なものを検索するか、[GitHubおよび/またはBitBucket]アカウントへのオフラインポインターセットを維持することで、途方もない数のリポジトリを持つことに対処する(トリプルブレチ)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.