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

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

7
私のオフィスでは、ポリシーとして無限ブランチのマージを望んでいます。他にどんなオプションがありますか?
私のオフィスは、ブランチの分割とマージをどのように処理するかを理解しようとしており、大きな問題に直面しています。 私たちの問題は、長期的なサイドブランチにあります-マスターから分かれるサイドブランチで数人の人々が働いている種類で、数ヶ月間開発し、マイルストーンに到達すると2つを同期します。 今、私見、これを処理するための自然な方法は、単一のコミットにサイドブランチをつぶすことです。master前進し続けます。当然のことです- master過去数か月の並列開発を過去にさかのぼってダンプしているわけではありません。そして、もし誰かがサイドブランチの歴史のためにより良い解像度を必要とするなら、もちろん、それはすべてまだそこにあります-それはただではなくmaster、サイドブランチにあります。 問題は次のとおりです。私はコマンドラインのみを使用していますが、残りのチームはGUISを使用しています。そして、GUISには他のブランチからの履歴を表示するための合理的なオプションがないことを発見しました。したがって、「この開発はブランチから押しつぶされた」と言って、スカッシュコミットに到達した場合XYZ、何が入っているかを確認するのは非常に苦痛XYZです。 SourceTreeでは、私が見つけることができる限り、それは大きな頭痛の種です:でmaster、からの履歴を見たいmaster+devFeature場合は、チェックmaster+devFeatureアウトする必要があります(異なるすべてのファイルに触れる)、または適切な場所が見つかるまで、リポジトリのすべてのブランチを並行して表示するログをスクロールします。そして、あなたがどこにいるのかを理解してください。 私のチームメイトは、開発の歴史にあまりアクセスできないことを望んでいません。したがって、彼らは、これらの大きくて長い開発側ブランチを、常にマージコミットでマージしたいと考えています。マスターブランチからすぐにアクセスできない履歴は必要ありません。 私はその考えが嫌いです。それは、並行した開発の歴史が無限に行き来できないことを意味します。しかし、私たちがどのような選択肢を持っているのか見ていません。そして、私はかなり困惑しています。これは、優れたブランチ管理について私が知っているほとんどすべてをブロックしているようであり、解決策が見つからない場合は、常にフラストレーションが溜まります。 ここには、サイドブランチを絶えずマージコミットでマスターにマージする以外のオプションがありますか?または、マージコミットを常に使用するのが私が恐れているほど悪くないという理由はありますか?

10
同僚がテストせずにコミットしてプッシュする
同僚が自分のPCでテストする必要がないと考えると、彼は変更を加え、コミットしてからプッシュします。次に、彼は実稼働サーバーでテストを行い、ミスを犯したことに気付きます。週に1回発生します。現在、彼は3つのコミットを行い、5分以内に運用サーバーへの展開をプッシュしていることがわかります。 私は彼に、これは良い仕事がどのように行われるかではない、と何度か言った。私は彼に再び失礼になりたくありません、そして、彼は会社で私と同じ地位にあります、そして、彼はここで私より多くをしました。 この振る舞いを何らかの形で罰するか、できる限り不快にしたいのです。 始める前に、会社はFTPなどの旧式な方法を使用して展開していましたが、バージョン管理はありませんでした。 Git、Bitbucket、Dploy.io、およびHipChatを使用するように強制しました。展開は自動ではなく、誰かがdply.ioにログインして展開ボタンを押す必要があります。 さて、実稼働サーバーでテストしないように強制するにはどうすればよいですか?HipChatボットのようなものは、同じ行で繰り返し編集が行われていることを感知し、プログラマーに通知を送信できます。

14
SCMなしでコード品質を維持するにはどうすればよいですか?
私は政府機関で働いています。ここで使用されている技術とソフトウェアの開発方法は非常に古いものです。 大量のストレージスペースがありますが、ここでの作業のほとんどを自動化するために使用されるアプリケーションを保持および維持するための適切なスペースはありません。 この機関では、GITやSVNなどのSCMソフトウェアを使用できません。 コードの品質を維持し、後でアプリに新しい機能を追加できるようにするための最良のアプローチは何でしょうか? コードを壊さずに行った変更を記憶するにはどうすればよいですか? 編集:私は言及するのを忘れました、彼らはそれぞれのコンピュータのためのネットワークドライブを持っています、そしてどういうわけかこれらのネットワークドライブは定期的にバックアップを作成または保存します。ただし、作業を保存し、既存のコードを壊さずに新しい機能を追加できるようにする独自の計画を作成しない場合、SCMソリューションに勝る大きな利点はありません。 編集:多くの人々がポータブルGitを提案したので、私はより多くの情報を追加する必要があります。Visual SVNサーバーをインストールしようとしましたが、インストールする管理者権限がないため失敗しました。また、通常のGitシェルをダウンロードしようとしましたが、ファイアウォールまたはネットワーク設定により、Gitダウンロードページにアクセスできませんでした。ポータブルGitをGmailであるメールに送信してみました。Googleはパッケージ内のexeファイルを検出しましたが、それでも仕事用コンピューターにポータブルGitバージョンをダウンロードできませんでした。もう1つ言及しなければならないのは、教育機関のコンピューターに適用されるネットワークポリシーでは、USBストレージデバイスの使用が許可されていないことです。USBポートを使用して、スマートフォンを充電したり、小型スピーカーなどの一部の機器に電力を供給したりできます。また、一部の人々が言及したように、インターネットさえ許可されていないコンピューターがあります。
110 git  code-quality  svn  scm 

1
Gitでコミットとタグに暗号で署名することの利点と欠点は何ですか?
だから誰かが私の仕事をレビューし、彼は私にいつも私のコミットとタグに暗号で署名するべきだと言った。理由を尋ねられたとき、彼はそれを私に説明することを知らず、「やるのは良いことだ」と言った。 明らかなチンパンジーのシナリオを回避しようとすると、なぜ本当に必要なのでしょうか?本当に多くの明確な利点があり、欠点はありませんか? 私が作成するすべてのコミットとタグに署名したいと思う実用的な理由は何ですか?
109 git  cryptography 

10
2010-01年にDebianポプコングラフでGit提出者の数が突然増加したのはなぜですか?
GitとMercurialの比較1を読んだほぼすべての記事では、MercurialのコマンドラインUXの方が優れているようです(各コマンドは(sayとは異なりgit checkout)1つのアイデアに限定されています)。 しかし、ある時点でGitは突然非常に人気が高くなり、Debianポプコングラフ(下のグラフ画像を参照)でGitの提出者の数が文字通り爆発しました。 ソース:Debian 2010-01年に起こったことは、物事が突然変化したことです。GitHubは2008年よりも早く設立されたようです。
86 git  history  mercurial 

11
GitHub用のGUIアプリがあるのになぜgitを学ぶのですか?
GitHubがMacとWindowsの両方にGUIアプリを提供しているとすると、コマンドラインからgitを使用することを学ぶことの利点は何ですか? 現在、Macアプリを使用してリポジトリを更新していますが、これまでのところ私のニーズを満たしているようです。何を見逃しているのでしょうか?
84 git  github 

11
個人(1人)プロジェクトのgit。やりすぎ?
私は、Subversionとgitの2つのバージョン管理システムを知っています。現在のところ、Subversionは私が唯一の開発者である個人プロジェクトに使用され、gitはオープンソースプロジェクトや、他の人もプロジェクトで作業すると信じているプロジェクトに使用されます。これは主に、gitの驚くべき分岐機能とマージ機能が原因です。誰もが自分のブランチで作業できます。とても便利な。 今、私は個人プロジェクトにSubversionを使用しています。gitはほとんど意味がないと思うからです。それは少しやり過ぎのようです。私が唯一の開発者であるときに(通常はホームサーバー上で)集中化されていれば問題ありません。とにかく定期的にバックアップを取ります。私は自分のブランチを作る能力を必要としません。メインブランチは私のブランチです。はい、SVNは分岐を簡単にサポートしますが、それより強力なサポートは意味がありません。マージはそれで苦痛になるか、少なくとも私の小さな経験からです。 個人的なプロジェクトでgitを使用する正当な理由はありますか、それとも単に過剰に過ぎますか?

6
「開発」ブランチの廃止傾向
GitHubで人気のあるプロジェクトを最近見ていると、developブランチがないことがわかりました。実際、GitHub Flowガイドでも言及されていません。私の理解から、master常に完全に安定し、生産を反映する必要があります。開発者が機能ブランチに取り組んでいてmaster、それらが完了したらそれらをマージする場合、機能/修正がマージされmaster、masterブランチが実際に本番よりも新しい期間があることを意味します。 チームが機能/修正ブランチを作成developし、そこにマージして、次のバージョンが完全にリリースの準備ができたら、developマージされmasterてタグが作成されるのはより理にかなっていますか?人々がに直接マージされmaster、masterブランチのコードベースが大幅に変更されたために修正が困難になるバグが本番環境で報告されていると想像してください。その後、開発者はユーザーに次のリリースまで問題を解決するまで待つように指示するだけです。 編集:この質問は「分岐するかしないか」とは異なります。特に、developブランチの使用から遠ざかる人々と、それを取り巻く理由を扱っています。これは、長い間ベストプラクティスとして宣伝されていたためです。
82 git  github 

6
なぜgitはリビジョン番号ではなくハッシュを使用するのですか?
なぜgitはリビジョン番号よりもハッシュを好むのかといつも思っていました。リビジョン番号ははるかに明確で簡単に参照できます(私の意見では):リビジョン1200を見てもらうか、92ba93eをコミットするように誰かに言うことには違いがあります!(1つの例を挙げます)。 それでは、この設計には理由がありますか?


8
ブランチを使用して同じソフトウェアの異なるエディションを維持することは良い習慣ですか?
いくつかの異なるエディションを持つ製品があります。違いはわずかです。異なる文字列があり、一方のロジックはほとんど追加されておらず、もう一方のロジックはほとんど違いがありません。ソフトウェアの開発中は、ほとんどの変更を各エディションに追加する必要があります。ただし、そうでないものと異なる必要があるものがいくつかあります。release-editionAおよびrelease-editionB(..etc)ブランチがある場合、ブランチの有効な使用ですか?落とし穴はありますか?良い習慣? 更新:皆さんの洞察に感謝します。多くの良い答えがここにあります。一般的なコンセンサスは、この目的のためにブランチを使用することは悪い考えだと思われます。不思議に思う人にとって、この問題に対する私の最終的な解決策は、構成として文字列を外部化し、プラグインまたはスクリプトとして異なるロジックを外部化することです。
72 git  branching 

4
なぜgit pullはデフォルトでリベースの代わりにマージを実行するのですか?
次の状況を考慮してください。 Gitリポジトリのクローンがあります ローカルコミット(まだどこにもプッシュされていないコミット)がある リモートリポジトリには、まだ調整されていない新しいコミットがあります このようなもの: git pullデフォルト設定で実行すると、次のようなものが得られます。 これは、gitがマージを実行したためです。 ただし、代替手段があります。代わりにリベースを行うようにpullに指示できます: git pull --rebase これが得られます: 私の意見では、リベース版には多くの利点があり、それらは主にコードと履歴の両方をきれいに保つことに集中しているため、gitがデフォルトでマージを行うという事実に少し驚いています。はい、ローカルコミットのハッシュは変更されますが、これは、より単純な履歴の見返りとして支払う小さな代償のようです。 しかし、これが何らかの形で悪いまたは間違ったデフォルトであることを決して示唆しているわけではありません。デフォルトではマージが優先される理由を考えるのに苦労しています。なぜ選ばれたのかについての洞察はありますか?デフォルトとしてより適切にする利点はありますか? この質問の主な動機は、私の会社がリポジトリを整理および管理する方法についてのいくつかのベースライン標準(できればガイドラインに似ている)を確立しようとしていることです。私は通常、このタイプの状況でリベースする必要があるというケースを作成することに興味があります(そしておそらく開発者がデフォルトでリベースするようにグローバル構成を設定することを推奨するため)とても素晴らしい場合はデフォルトです。だから私は私が不足している何かがあるのだろうかと思っています。 この質問は、なぜ多くのウェブサイトが「git merge」よりも「git rebase」を好むのかを複製したものであることが示唆されています。; ただし、この質問はこの質問の逆です。この質問では、リベースよりもマージの利点について質問されていますが、マージよりもリベースのメリットについて説明します。そこでの答えはこれを反映しており、マージの問題とリベースの利点に焦点を当てています。
71 git 


17
Gitを学べない開発者のために何ができますか?[閉まっている]
状況 8人のエンジニアからなる私のチームは、次の大きな仕事のために(Subversionから)Gitに移行しています。Gitを手に入れるのが非常に難しいと感じている「経験豊富な」エンジニアが少数います。ユーザーマニュアル、トレーニング活動、ホワイトボードセッションを提供したにもかかわらず、私は同じ些細な質問をしました。数日のうちにすべてを拾い上げた2人のジュニアコンサルタントがいましたが、それが問題を明らかにしました。これはGitに限定されたパターンではありませんが、結果として目に見えるようになりました。 質問 学べない/学べないエンジニア、特にここにいる年功序列レベルのスタッフには特に好意的ではありません。ただし、チームが成功し、優れた製品を構築することを望んでいます。中央集中型のGit Flowモデルを使用していますが、すべての新しい用語がそれらを困惑させているように感じます。 これらの従業員がGitを学ぶのを支援するためにできることはありますか? Sourcetreeは、チーム全体で使用されているクライアントです。
68 git  gitflow 

9
ドキュメントとプロジェクト管理にGitを使用する必要がありますか?コードは別のリポジトリに配置する必要がありますか?
グループプロジェクトのGitリポジトリを起動しています。コードと同じGitリポジトリにドキュメントを保存するのは理にかなっています -これはgitリビジョンフローの性質と矛盾するようです。 ここに私の質問の要約があります: コードとドキュメントの両方が同じリポジトリにチェックインされている場合、Gitリビジョンスタイルは混乱するでしょうか?これでの経験? Gitはドキュメントのリビジョン管理に適していますか? 私はありません一般的にはリビジョン管理システムは、またはマニュアルのために使用すべきではないかどうかを尋ねる-それがなければなりません。 これまでのフィードバックに感謝します!

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