タグ付けされた質問 「version-control」

バージョン管理とは、ドキュメント、プログラム、およびコンピューターファイルとして保存されているその他の情報に対する変更の管理です。このタグを使用して、バージョン管理の使用法と適用性、VCS比較に関する一般的な質問にマークを付けます。それぞれの特定のVCSに固有のほとんどのコマンドと手法には、特定のタグがあり、推奨されます。


7
すべてのローカルチェンジセットを削除し、ツリーに戻します
私はMercurialを使用していて、3つの頭を持つローカルでひどい混乱に陥っています。プッシュすることはできません。ローカルの変更とコミットをすべて削除し、完全にクリーンなコードとクリーンな履歴からやり直したいだけです。 言い換えると、(a)リモートブランチの先端に存在するものとまったく同じコードがローカルにあり、(b)ローカルコミットの履歴がないことです。 hg update -Cローカルの変更を上書きすることを知っています。しかし、ローカルコミットを削除するにはどうすればよいですか? 明確にするために、私がローカルで行った作業を保存することに関心はありません。完全にクリーンなローカルチェックアウトに戻す最も簡単な方法が欲しいだけです。

2
別のリポジトリからのGitプル
と呼ばれるリポジトリGenericがあります。これは一般的なアプリケーションです。私はそれをと呼ばれるリポジトリに分岐しましたAcme。これは、アプリケーションに保存されたGenericリポジトリに基づいて構築され、それにAcme Coブランドを追加します。 でコア機能に変更を加えた場合、でコア機能に加えた最新の変更でリポジトリGenericを更新しAcmeますGeneric。どうすればいいですか? 私が知る限り、私は基本的に上流リポジトリで行われた変更を現在のフォークにマージしようとしています。 何か意味がある場合は、これを実行しようとしています。これは、(Acmeこの例のように)個々のクライアントに基づいて構築およびブランド化する汎用アプリケーションがあるためです。よりクリーンな方法がある場合は、お知らせください。

30
「コメントアウトされた」コードのチェックイン[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して質問を更新し、事実と引用で回答できるようにします。 3年前休業。 この質問を改善する わかりました、これが私の現在の仕事でいくらかの摩擦を引き起こした何かであり、私は本当にそれを期待していませんでした。ここで組織されたソフトウェア開発はここでの新しい概念であり、いくつかのコーディングガイドラインの最初のドラフトを作成しました。 「コメントアウトされた」コードはリポジトリにチェックインしないでください。私がこれを述べた理由は、リポジトリがファイルの完全な履歴を保持しているためです。機能コードを削除する場合は、完全に削除してください。リポジトリは変更を保持するため、変更内容を簡単に確認できます。 このため、別の開発者がこの方法をとるのは制限が厳しすぎると考えているため、多少の摩擦が生じています。この開発者は、彼が取り組んでいるが不完全なコードをコメント化できるようにしたいと考えています。このコードは、以前にチェックインされることはなく、どこにも保存されませんでした。TFSを使用するので、変更を保留することが最も適切なソリューションになると提案しました。ただし、デプロイされている場合とされていない場合がある部分的な変更をチェックインできるようにしたいため、これは受け入れられませんでした。 最終的には、継続的インテグレーションを最大限に活用し、開発用Webサーバーに自動的にデプロイするようになる予定です。現在、Webサーバーまたはデータベースサーバーの開発バージョンはありませんが、すべてすぐに変更されます。 とにかく、あなたの考えは何ですか?「コメントアウトされた」コードがリポジトリにあると便利だと思いますか? このトピックについて他の人から話を聞くことは非常に興味があります。 編集:わかりやすくするために、私たちはプライベートブランチを使用していません。私たちがそうした場合、私はあなたのプライベートブランチであなたがやりたいことをしますが、コメントアウトされたコードをトランクや共有ブランチにマージしないでください。 編集:プライベートまたはユーザーごとのブランチを使用しない正当な理由はありません。それは私が同意しない概念ではありません。まだそのように設定していません。おそらくそれが最終的な中立だろう。ここでは、TFSシェルビングを使用します。

17
TFSチェックインをロールバックするにはどうすればよいですか?
TFSで最近行った変更をロールバックしたいのですが。Subversionでは、これは非常に簡単でした。しかし、それはTFSの信じられないほどの頭痛のようです: オプション1:以前のバージョンを取得する 各ファイルの以前のバージョンを手動で取得する 編集のためにチェックアウト 失敗-チェックアウト(VS2008の場合)により、最新バージョンを取得する必要があります オプション2:TFS Power Toolsを入手する Team Foundation Power Toolsをダウンロード コマンドラインからロールバックコマンドを発行する 失敗-他に保留中の変更がある場合は機能しません オプション3:変更を手動で元に戻す 手動で変更を元に戻し、新しい変更セットをコミットする 質問 TFSの以前の変更セットにロールバックするにはどうすればよいですか?

6
Mercurialの方がSubversionよりも分岐とマージが簡単なのはなぜですか?
SubversionまたはCVSでブランチへの複数のマージを処理することは、経験しなければならないことの1つにすぎません。Mercurial(およびおそらく他の分散システム)でブランチとマージを追跡するのは非常に簡単ですが、理由はわかりません。他に誰か知っていますか? 私の質問は、MercurialではSubversions / CVSの中央リポジトリと同様の作業方法を採用でき、すべてが正常に機能するという事実に由来します。同じブランチで複数のマージを行うことができ、コミット番号とタグ名を含む紙の無限のスクラップは必要ありません。 Subversionの最新バージョンにはブランチへのマージを追跡する機能があるので、同じ程度の手間はかかりませんが、それは彼らの側での巨大で大きな開発であり、それでも開発チームが行うすべてのことを行うわけではありませんそれが好きです。 すべてが機能する方法には根本的な違いがあるはずです。

3
'git pull origin mybranch'は、ローカルのmybranch Nコミットをoriginより先に残します。どうして?
私はちょうど奇妙について何かを観察しgit pull、私は理解していないいます、。 金曜日、私は地元の支店で働きました。それを呼びましょうmybranch。オフィスを離れる前に、それを元の場所(私のgithubリポジトリ)にプッシュしましたgit push origin mybranch。 昨日自宅で、私のpullブランチをラップトップに移動し、さらにコーディングを行ってから、変更をgithub(元)にプッシュしました。 今、私は再び仕事をしていて、昨日の変更を自分の作業マシンにプルしようとしました(週末に私の職場のローカルリポジトリで何も変更しませんでした)。 git pull origin mybranch これは早送りマージを引き起こしましたが、問題ありません。それから私はをしましたgit status、そしてそれは言った: # On branch mybranch # Your branch is ahead of 'origin/mybranch' by 6 commits. # nothing to commit (working directory clean) えっ?週末に触れずに、元の場所から引っ張っただけで、6コミット先になるのはなぜですか?したがって、私はaを実行しgit diff origin/mybranch、差分はちょうどリモートからプルした6つの変更でした。 私はこれを実行することによってのみこれを「修正」することができましたgit fetch origin: From git@github.com:me/project af8be00..88b0738 mybranch -> origin/mybranch どうやら、私のローカルリポジトリにはいくつかの参照オブジェクトがありませんでしたが、それはどうしてですか?つまり、プルはすでにフェッチを行っており、そのブランチ以外には何もしていなかったので、git fetch originとgit …


3
すべての子を含むブランチのリベース
次のGitリポジトリトポロジがあります。 A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) リベースによってfeature枝を私は(子供の支店を含む)サブツリー全体をリベースすると予想さ: $ git rebase feature master A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) ただし、これは実際の結果です。 C' (feature) / A-B-F (master) \ D (feature-a) \ / C \ E (feature-b) 次のコマンドを実行すると、簡単に手動で修正できます。 $ git rebase …


7
SVNブランチの削除
'features'というSVNプロジェクトのブランチを作成しました。このプロジェクトを更新しようとすると、ブランチからのプロジェクトの別のコピーを含むfeaturesフォルダーが表示されます。これがもう起こらないように、リポジトリからブランチを完全に削除する方法はありますか?


4
特定のファイルタイプを除いて、特定のフォルダーの下にあるすべてのファイルを再帰的に正しく無視する
私は同様の質問(見てきた1、2および3を)が、私は彼らからの適切な解決策を得ることはありません。 特定のファイルタイプを除いて、特定のフォルダーの下にあるすべてのファイルを無視する必要があります。フォルダは、ルートパスのサブディレクトリです。フォルダに名前を付けますResources。複雑にしたくないので、名前が付けられResourcesているすべてのフォルダの下にあるファイルは無視してください。 これが最も一般的な解決策です(すべての重複する質問で) # Ignore everything * # Don't ignore directories, so we can recurse into them !*/ # Don't ignore .gitignore !.gitignore # Now exclude our type !*.foo このソリューションの問題は、新しく追加されたファイルの追跡を停止することです(*すべてのファイルを無視するため)。すべてのファイルタイプを除外し続けたくありません。新しいファイルが追加された場合にそれを表示する通常の動作が必要git statusです。 私は最終的にここで解決策を得ました。解決策は.gitignore、Resourcesフォルダーに別のファイルを追加することです。これは正しく動作します。 1つの無視ファイルで同じことを達成できますか?さまざまなディレクトリにある無視ファイルがたくさんあるのは少し不格好です。 これは私が達成しようとしていることです: # Ignore everything under Resources folder, not elsewhere Resources # Don't ignore directories, so we can …

8
移動するとき、コンピューター間のgitリポジトリ同期?
デスクトップPCとラップトップを持っていて、デスクトップで作業することもあれば、ラップトップで作業することもあるとしましょう。 gitリポジトリを前後に移動する最も簡単な方法は何ですか? gitリポジトリーを同一にして、他のコンピューターで離れたところから続行できるようにします。 両方のコンピューターに同じブランチとタグがあることを確認したいと思います。 ありがとうヨハン 注:SubVersionでこれを行う方法は知っていますが、これがgitでどのように機能するかについて興味があります。簡単な場合は、2台のPCを同期できる従来のサーバーとして3台目のPCを使用できます。 注:両方のコンピューターでLinuxが実行されています。 更新: それでは、サーバー上の裸のgitリポジトリとKingCrunchのpushコマンド構文を使用してXANI:sのアイデアを試してみましょう。この例では、2つのクライアントと1つのサーバーがあります。 それでは、最初にサーバー部分を作成しましょう。 ssh user@server mkdir -p ~/git_test/workspace cd ~/git_test/workspace git --bare init それで、他のコンピューターの1つから、クローンを使用してリポジトリのコピーを取得しようとします。 git clone user@server:~/git_test/workspace/ Initialized empty Git repository in /home/user/git_test/repo1/workspace/.git/ warning: You appear to have cloned an empty repository. 次に、そのリポジトリに移動してファイルを追加します。 cd workspace/ echo "test1" > testfile1.txt git add testfile1.txt git …

4
GitHubは1つのファイルに加えられた変更の履歴をパッチ形式で表示できますか?
実行するとgit log --patch -- path/to/file、次のように、コミットごとにファイルに加えられたすべての変更の差分とともに、ファイルの履歴が表示されます。 $ git log --patch -- git-rebase.sh commit 20351bb06bf4d32ef3d1a6849d01636f6593339f Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Sat Jun 15 18:43:26 2013 +0530 rebase: use 'git stash store' to simplify logic rebase has no reason to know about the implementation of the stash. In the case when applying the …

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