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

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

30
git index.lockファイルはコミットしようとすると存在しますが、ファイルを削除できません
「git commit」を実行すると、次のようになります。 fatal: Unable to create 'project_path/.git/index.lock': File exists. しかし、私がそうls project_path/.git/index.lockするとき、それはファイルが存在しないと言っています。私が何をすべきかについての考えはありますか?また、project_path / .gitはrootが所有していることにも気づきました。これが私が直面している問題と関係があるかどうかはわかりません。 gitバージョンは1.7.5.4です 編集:問題は、おそらく私が実行していた別のプロセスであり、プロジェクトディレクトリに(知らないうちに)書き込みを行っていたようです。マシンを再起動したところ、問題なくコミットできました。
197 git 

8
git-特定のブランチからプルする
gitリポジトリを自分の開発サーバーに複製してから、devブランチに切り替えましたが、git pullを実行してブランチを更新できません。 サーバー上のコードを更新するにはどうすればよいですか?
197 git 

9
どのようにgit reset --hardサブディレクトリをリセットするのですか?
UPDATE²:Git 2.23(2019年8月)では、これを行う新しいコマンドgit restoreがあります。承認された回答を参照してください。 更新:これはGit 1.8.3の時点でより直感的に機能します。自分の答えを参照してください。 次の使用例を想像してみてください。Git作業ツリーの特定のサブディレクトリにあるすべての変更を取り除き、他のすべてのサブディレクトリはそのまま残したいとします。 できますgit checkout .がgit checkoutです。スパースチェックアウトによって除外されたディレクトリを追加します がありますがgit reset --hard、サブディレクトリに対しては実行できません。 > git reset --hard . fatal: Cannot do hard reset with paths. 繰り返しますが、なぜgitはパスでハード/ソフトリセットを実行できないのですか? を使用して現在の状態をリバースパッチすることはできますgit diff subdir | patch -p1 -Rが、これはかなり奇妙な方法です。 この操作に適切なGitコマンドは何ですか? 以下のスクリプトは問題を示しています。How to make filesコメントの下に適切なコマンドを挿入します。現在のコマンドはa/c/ac、スパースチェックアウトによって除外されるはずのファイルを復元します。私がいることを注意していない明示的に復元したいa/aとa/b、私は「知っている」aと、以下のすべてのものを復元したいです。編集:そして私はまたb、「知っている」、または他のどのディレクトリがと同じレベルにあるかを知りませんa。 #!/bin/sh rm -rf repo; git init repo; cd repo for f in …

15
現在のディレクトリがGitリポジトリかどうかを確認する
zshでGit管理用の一連のスクリプトを書いています。 現在のディレクトリがGitリポジトリかどうかを確認するにはどうすればよいですか?(私がGitリポジトリにいないときは、一連のコマンドを実行して一連のfatal: Not a git repository応答を取得する必要はありません)。
197 git  zsh 

16
ブランチ間のgit visual diff
この回答は、gitにチェックインされた2つのファイル間の視覚的な差分を確認するのに最適 です。視覚的な差分プログラムで「git diff」の出力を表示するにはどうすればよいですか? ただし、2つのブランチ間の視覚的な違いを見たいのですが。これまでのところ、私の最善の策は次のようです: git diff --name-status master dev これはあまり有益ではなく、あまり視覚的ではありません。 そこにもっと良いものはありますか?
196 git  diff 

4
gitはスペースとタブを自動的に切り替えることができますか?
私のpythonプログラムではインデントにタブを使用していますが、代わりにスペースを使用するユーザーと(gitを使用して)共同作業をしたいと考えています。 gitがプッシュ/フェッチ時にスペースとタブ(たとえば、4つのスペース= 1つのタブ)を自動的に変換する方法はありますか?(CR / LF変換と同様)
196 git  tabs  indentation 

10
Gitプッシュエラー:チェックアウトされたブランチの更新を拒否
いくつかのマージの競合を解決し、コミットして変更をプッシュしようとしたところ、次のエラーが発生しました: c:\Program Files (x86)\Git\bin\git.exe push --recurse-submodules=check "origin" master:master Done remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare repository remote: error: is denied, because it will make the index and work tree inconsistent remote: error: with what you pushed, …
196 git  git-push 

10
MercurialリポジトリとのGit相互運用性
MacでGITを使用しています。十分に言った。私には道具があり、経験があります。使い続けたいです。ここには戦争はありません... 問題は常に相互運用性にあります。ほとんどの人がSVNを使用しています。これは私にとって素晴らしいことです。Git SVNはそのまま使用でき、簡単なソリューションではありません。人々は引き続きSVNを快適に使用でき、ワークフローもツールも失うことはありません。 今... Mercurialに同行する人もいます。彼らにとって罰金:彼らには理由があります。しかし、GIT HGをすぐに見つけることはできません。HGに切り替えたくありませんが、リポジトリと相互運用する必要があります。 皆さん、これの簡単な解決策を知っていますか?



14
SSH経由のGitを設定して1回ログインする
gitリポジトリのクローンをsshで作成しました。そのため、プッシュまたはプルによってオリジンマスターと通信するたびに、パスワードを再入力する必要があります。パスワードを何度も入力する必要がないようにgitを構成するにはどうすればよいですか?
195 git  ssh  ssh-keys 

12
エイリアスを使用してbash補完を取得するにはどうすればよいですか?
適例: 私はbash v3.2.17を搭載したMacで、bash_completionバリアントを使用してmacports経由でインストールされたgitを使用しています。 私がタイプするときgit checkout m<tab>。たとえば、私はそれを完成させるmasterます。 ただし、のエイリアスがgit checkoutありgcoます。入力するとgco m<tab>しても、ブランチ名がオートコンプリートされません。 理想的には、オートコンプリートがすべてのエイリアスに対して魔法のように機能することを望みます。出来ますか?それができない場合は、エイリアスごとに手動でカスタマイズしたいと思います。それで、私はどちらかについてどうしますか?
195 git  bash  shell  unix  autocomplete 

6
Git:ベアリポジトリでアクティブブランチを変更する正しい方法は?
プロジェクトの中央ストアとして使用される裸のリポジトリがあります。すべての開発者はそれgit clone <repo>を共有するために行います。クローンを作成すると、が含まれているgit clone -nため、マスターブランチのチェックアウトを取得します(そうでない場合)。これにより、これがアクティブブランチになります。repo.git/HEADref: refs/heads/master 問題は、Active Branchを適切に変更するにはどうすればよいですか?repo.git/HEADファイルを直接ハッキングすることもできますが、それは厄介で、ハッキングされているようです。 git checkout <otherbranch>repo .gitディレクトリで実行しようとしましたが、作業ツリーにいないため失敗しました。 私は試しましたgit update-ref HEAD refs/heads/otherbranchが、refs / heads / masterがrefs / heads / otherbranchと同じになるように更新しただけです(そう、私はそれを自分のプロダクションではなく、ダミーのリポジトリで行いました!) 私が試したところgit update-ref --no-deref HEAD refs/heads/otherbranch、ほとんど問題なく動作しました。HEADファイルを更新しましたが、それが指すコミットのSHA1に設定しましたrefs/heads/otherbranch。 私はgitバージョンでテストしています1.7.0.2.msysgit.0。 私は、を介してこれを行うには方法はありません推測しているgit pushすべてと雑貨が(!)デフォルトのブランチは少し危険なようで変更することができて、しかし確実にレポでそれを行うには良い方法があります.git直接ハッキングよりもディレクトリHEADファイルが。
195 git 

10
どうしてgitは「マージされていないファイルがあるのでプルはできない」と言うのですか?
ターミナルでプロジェクトディレクトリをプルしようとすると、次のエラーが表示されます。 harsukh@harsukh-desktop:~/Sites/branch1$ git pull origin master U app/config/app.php U app/config/database.php U app/routes.php Pull is not possible because you have unmerged files. Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'. なぜgitはと言うの"Pull is not possible because …

4
Gitとコマンドラインを使用してマージ中にローカルファイルまたはリモートファイルを保持する方法
vimdiffを使用して変更をマージする方法は知っていますが、ファイル全体を保持または破棄するのが適切であると知っているとしたら、どうすればよいですか? それぞれに対してvimdiffを開きたくありません。「ローカルに保持」または「リモートに保持」というコマンドが必要です。 EG:Windowsで誰かがファイルを開いてEOLを変更したため、変更済みとマークされたファイルをマージしてからコミットしました。マージするときは、自分のバージョンを保持して破棄します。 私はまた反対に興味があります。私は大きな時間をめちゃくちゃにして、リモートファイルを受け入れて私の変更を破棄したいと考えています。
194 git  merge  local 

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