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

Gitは、オープンソースの分散バージョン管理システム(DVCS)です。このタグは、Gitの使用法とワークフローに関連する質問に使用します。単にリポジトリがGitHubでホストされているからといって、Git関連の問題には[github]タグを使用しないでください。また、Gitリポジトリが関係する一般的なプログラミングの質問には、このタグを使用しないでください。

4
追加したファイルを強制的にgit stashで上書きする
gitで追跡されなかったファイルがいくつかあります。変更を加えてコミットしたかったのですが、変更前のファイルを最初にチェックインするのを忘れていたことがわかりました。そのため、ファイルを隠しておき、未変更のバージョンを追加しました。 次に、スタッシュをリポジトリに適用すると、ファイルがすでに追加されているために競合が発生します。 スタッシュを適用し、スタッシュ内のバージョンをリポジトリ内の元のバージョンよりも優先して使用するにはどうすればよいですか? ありがとう
223 git 

18
(Mac)-bash:__git_ps1:コマンドが見つかりません
ターミナルでコマンドプロンプトを変更しようとしています。エラーが発生し続けます: -bash: __git_ps1: command not found 私はそのままターミナルに入力するだけで試しました:__git_ps1。私もそれを試してみました.bash_profile if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi あなたが見る/伝えることができるかもしれないように、はい、私はオートコンプリートをインストールしていて、それはうまくいきます! 私はこの質問に出くわしました:「PS1 env変数はMacでは機能しません」これはコードを与えます alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" それで、.bash_profile何かを変えることを期待してそれを追加します。まあ、それはしました。エラー出力を変更しただけです。 以下.bash_profileが追加されたものです: alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" if [ -f …
222 macos  git  terminal  ps1 

5
Gitブランチ名でのスラッシュ文字の使用
人気のあるGitプロジェクトのどこかで、ブランチが「feature / xyz」のようなパターンを持っているのを見たと思います。 ただし、スラッシュ文字を使用してブランチを作成しようとすると、エラーが発生します。 $ git branch labs/feature error: unable to resolve reference refs/heads/labs/feature: Not a directory fatal: Failed to lock ref for update: Not a directory (私の最初の試み)と同じ問題: $ git checkout -b labs/feature スラッシュ文字を使用してGitにブランチを作成するにはどうすればよいですか?
222 git  branch 

23
git statusは変更を示し、git checkout — <file>はそれらを削除しません
作業コピーへのすべての変更を削除したいと思います。 実行git statusすると、変更されたファイルが表示されます。 私がこれらの変更を削除することはないようです。 例えば: rbellamy@PROMETHEUS /d/Development/rhino-etl (master) $ git status # On branch master # Changed but not updated: # (use "git add &lt;file&gt;..." to update what will be committed) # (use "git checkout -- &lt;file&gt;..." to discard changes in working directory) # # modified: Rhino.Etl.Core/Enumerables/CachingEnumerable.cs # modified: Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs …

9
過去にGitをコミットするにはどうすればよいですか?
私は個人的に使用するためにすべてをGitに変換していますが、リポジトリに古いバージョンのファイルがいくつか見つかりました。ファイルの「変更日」に従って正しい順序で履歴にコミットするには、ファイルの正確な履歴を取得するにはどうすればよいですか? 私はこのようなものがうまくいくと言われました: git filter-branch --env-filter="GIT_AUTHOR_DATE=... --index-filter "git commit path/to/file --date " --tag-name-filter cat -- --all


5
gitで新しいファイルの一部のみをステージングする方法は?
私は大好き --interactive追加GIT。これは私の毎日のワークフローの一部です。 問題は、追跡されていないファイルでは機能しないようです。私がやりたいのは、新しいファイルを追跡することですが、その一部のみを追加します。つまり、この新しいファイルの一部はまだステージングの準備ができていません。 たとえば、git add -iを使用すると、新しいコードの一部をステージングするためにパッチオプションを選択し、個々のハンクを編集して、デバッグコードのコメントをステージングしないで残すことができます。私がこの方法で作業するのは、現在取り組んでいるメガパッチのどこにまだ作業が必要であるかが明確になるためです。 残念ながら、追跡されていないファイルで同じことを行うことはできないようです。ファイル全体をステージングするか、何もステージングしません。私が使用している回避策は、新しいファイルが空の場合にステージングまたはコミットしてから、通常の方法で個々の変更をステージングすることです。しかし、このソリューションは汚いハックのように感じられ、私が忘れたり、考えを変えたりすると、本来よりも多くの問題が発生します。 したがって、問題は、新しいファイルの一部のみをステージングして、この新しいファイルを追跡しながら、コンテンツの全体または一部をステージングしないままにする方法ですか。
221 git 


16
Gitエラー:リモートリポジトリへの接続時に「ホストキーの検証に失敗しました」
WebサーバーにあるリモートGitリポジトリに接続し、それを自分のマシンに複製しようとしています。 コマンドに次の形式を使用しています。 git clone ssh://username@domain.com/repository.git これは私のチームメンバーのほとんどにとって問題なく機能しています。通常、このコマンドを実行した後、Gitはユーザーのパスワードの入力を求め、それから複製を実行します。しかし、私のマシンの1つで実行すると、次のエラーが発生します。 ホストキーの検証に失敗しました。 致命的:リモートリポジトリから読み取れませんでした。 このリポジトリへの接続にSSHキーを使用していないため、この特定のマシンでGitがキーをチェックしている理由がわかりません。
221 git  ssh  ssh-keys 

7
異なるオペレーティングシステム間でのgit core.autocrlfによる行末変換の動作
Stack Overflowに関するさまざまな質問と回答、およびcore.autocrlf設定がどのように機能するかに関するgitのドキュメントを読みました。 これは私が読んだことからの私の理解です: UnixおよびMac OSX(OSX以前のバージョンではCRを使用)クライアントはLF行末を使用します。 WindowsクライアントはCRLF行末を使用します。 クライアントでcore.autocrlfがtrueに設定されている場合、gitリポジトリは常にLFの行末形式でファイルを保存し、クライアント上のファイルの行末はチェックアウト/コミット時に前後に変換されます。 -LFの行末。クライアントの行末ファイルの形式に関係なく(これはTim Clemの定義と一致しません。以下の更新を参照してください)。 これは、core.autocrlfの 'input'および 'false'設定について同じことを文書化しようとするマトリックスで、行末の変換動作が不明な疑問符が付いています。 私の質問は: 疑問符はどうあるべきですか? このマトリックスは「非疑問符」に対して正しいですか? コンセンサスが形成されたように見えるので、回答から疑問符を更新します。 core.autocrlf値 true入力false -------------------------------------------------- -------- コミット| 変換しますか?? 新しい| LFに変換(LFに変換?)(変換なし?) コミット| に変換 ?番号 既存| LF(LFに変換?)変換 チェックアウト| に変換 ?番号 既存| CRLF(変換なし?)変換 私は実際にはさまざまな設定の長所と短所についての意見を探しているのではありません。私はgitが3つの設定のそれぞれで動作することを期待する方法を明確にするデータを探しています。 - アップデート04/17/2012:コメントでJJDによってリンクされたTim Clemによる記事を読んだ後、上記の表の「不明」値の一部の値を変更し、「既存のチェックアウト|変換してtrue」を変更しましたクライアントに変換する代わりにCRLFに変換します。」彼の定義は次のとおりです。これは、他のどこかで見たものよりも明確です。 core.autocrlf = false これはデフォルトですが、ほとんどの人はこれをすぐに変更することをお勧めします。falseを使用した結果、Gitがファイルの行末を混乱させることはありません。LF、CRLF、CR、またはこれら3つのランダムな組み合わせでファイルをチェックインできますが、Gitは関係ありません。これはdiffを読みにくくし、マージをより困難にする可能性があります。Unix / Linuxの世界で働いているほとんどの人は、CRLFの問題がなく、ファイルがオブジェクトデータベースに書き込まれたり、作業ディレクトリに書き込まれたりするたびにGitが余分な作業を行う必要がないため、この値を使用します。 core.autocrlf = true つまり、Gitはすべてのテキストファイルを処理し、そのファイルをオブジェクトデータベースに書き込むときにCRLFをLFに置き換え、作業ディレクトリに書き込むときにすべてのLFをCRLFに戻すことを確認します。これは、作業ディレクトリにCRLFを保持しながらリポジトリを他のプラットフォームで使用できるようにするため、Windowsで推奨される設定です。 core.autocrlf =入力 …

16
コミットする前にgitが末尾の空白を自動的に削除するようにします
私はチームでgitを使用していて、差分、ログ、マージなどから空白の変更を削除したいと思います。これを行う最も簡単な方法は、gitが末尾の空白(およびその他の空白エラー)を自動的に削除することだと思います)適用されるすべてのコミットから。 以下を~/.gitconfigファイルごとに追加しようとしましたが、コミットしても何も起こりません。多分それは何か別のもののために設計されています。解決策は何ですか? [core] whitespace = trailing-space,space-before-tab [apply] whitespace = fix 私は、誰かがルビー特有のアイデアを持っている場合に備えて、ルビーを使用しています。コミット前の自動コードフォーマットは次のステップですが、それは難しい問題であり、実際には大きな問題を引き起こしていません。
220 git  whitespace  githooks 


30
git add、commit、pushコマンドを1つに?
これら3つのコマンドを1つで使用する方法はありますか? git add . git commit -a -m "commit" (do not need commit message either) git push たまに、1文字だけ、CSSパディングなどを変更しています。それでも、変更をプッシュするには、3つのコマンドすべてを記述する必要があります。プッシャーが1つしかないプロジェクトがたくさんあるので、このコマンドはすばらしいでしょう。
220 git 


21
リポジトリから単一のファイルを取得する
リモートのgitリポジトリから単一のファイルのコンテンツを取得するための(転送されるデータと使用されるディスク領域に関して)最も効率的なメカニズムは何ですか? これまでのところ、私はなんとか思いついた: git clone --no-checkout --depth 1 git@github.com:foo/bar.git &amp;&amp; cd bar &amp;&amp; git show HEAD:path/to/file.txt これはまだやり過ぎのようです。 リポジトリから複数のファイルを取得するのはどうですか?

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