git log -L 4,11:.screenrc
GitHubに公開鍵を登録していないユーザーにsuして、ssh経由でpushやpull、cloneをする
ここでは、以下の条件でcloneする例を以下に示す。
githubに公開鍵を登録してるユーザー:foo
suするユーザー: root
あとは、次のような.ssh/configを作成すれば、gitでgithubからcloneするときにfooとして操作が行われる。
githubに公開鍵を登録してるユーザー:foo
suするユーザー: root
$ sudo -E su-Eをする理由はSSH_AUTH_SOCK環境変数を引き継いでssh-agentによる自動パスフレーズ入力をするため。これは必ずしも必須ではない。
あとは、次のような.ssh/configを作成すれば、gitでgithubからcloneするときにfooとして操作が行われる。
Host github.com user foo identityfile /home/foo/.ssh/id_rsa
MacOSのgitでinvalid action developer pathのエラーの対処
gitを使うと以下のエラーが表示された。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun解決方法は、以下のコマンドを実行
xcode-select --install
gitでマスター以外のブランチを一気に削除する
$ git checkout master && git branch --color=never | grep -v master$ | sed "s/^/git branch -D/" | sh
El capitanでgitがエラーになる場合の対処
$ git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrungitを使うと上記のようなエラーが出る場合、次のコマンドを実行する。
xcode-select --install
gitで内部的に呼ばれるsshを別のユーザーとして実行する
この例では、ユーザーfooとしてsshを実行します。
1. ラッパースクリプトを作成。ここではssh-as-fooとしてます。
1. ラッパースクリプトを作成。ここではssh-as-fooとしてます。
#!/bin/sh ssh -lfoo -i/home/foo/.ssh/id_dsa "$@"2. GIT_SSH環境変数に、上記のスクリプトを指定。
$ GIT_SSH=ssh-as-foo git pull
rootで一般ユーザーのsshキーペアを使ってgit cloneする
例:青字の部分を適宜変更。
# SSH_AUTH_SOCK=/run/user/1000/keyring/ssh git clone ssh://user@host/hoge/foo foo
branch is currently checked outと表示されてgit pushが失敗した時の対応
git pushで以下のようなエラーになる場合があります。
! [remote rejected] master -> master (branch is currently checked out)リモートで、次のように設定することで解決できます。
$ git config --bool core.bare true
sshでgit repositoryをcloneする例
remote.hostでsshが8080ポートで待ち受け。MyProjectというレポジトリをfooというuserでログインしてクローンする。
$ git clone ssh://foo@remote.host:8080/home/foo/repos/MyProject
Linux上でGit repositoryの内容をグラフィカルに表示するgitg
Linuxデスクトップ上で使えるGitのGUIクライアントを探していたが、gitgというのがよさげ。
GTK+アプリなので、私のデスクトップ環境XFce(GTK+ベース)との親和性もよい。
https://wiki.gnome.org/Apps/Gitg/#Screenshots
なお、これを探す時に利用したサイトは以下。他のいつかのクライアントも紹介されている。
http://git-scm.com/download/gui/linux
GTK+アプリなので、私のデスクトップ環境XFce(GTK+ベース)との親和性もよい。
https://wiki.gnome.org/Apps/Gitg/#Screenshots
なお、これを探す時に利用したサイトは以下。他のいつかのクライアントも紹介されている。
http://git-scm.com/download/gui/linux
git logをlessに渡しても色つきで表示する
最近のgit diffは、色つきで差分を表示します。しかし、パイプでlessに渡すと色がつきません。常に色を表示するには下記のようにします。
git diff --color=always | less -r
git diffで追加・削除の行数だけ取得する。
--shortstatをつければよい。
$ git diff 8044225f2 --shortstatファイル単位なら、--stat。
$ git diff 8044225f2 --stat book/src/abc.c | 74 +++++++++++++++++++++++++++++++++++++++++---- book/src/page.c | 16 +++++++++--- book/test/foo.c | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 198 insertions(+), 12 deletions(-)
登録:
投稿 (Atom)