2017年10月09日

「error: Sparse checkout leaves no entry on working directory」と出てgit pullができなくなった

以下のようなエラーがでてGit pullができなくなった。

「error: Sparse checkout leaves no entry on working directory」

sparse-checkoutの指定の方法が何処かのバージョンで変わったらしい。
ディレクトリの末尾に/が必要になったようなので修正。

vi .git/info/sparse-checkout


html

html/
posted by ねこまんま at 16:59
Comment(0) | Git

2017年01月05日

GitHubの複数アカウントを切り替える

GitHubの複数アカウントを切り替える方法

まず、サブアカウント用の公開鍵を作成 fオプションで名前(サンプルではabd)をつけます。

cd ~/.ssh/
ssh-keygen -t rsa -f abc


lsコマンドで秘密鍵「abc」と公開鍵「abc.com」が作成されているのを確認

ls
id_rsa.pub id_rsa abc.pub abc


cat abc.pubなんかでabc.pubの内容をコピーしてgithubに登録しておく

cat abc.pub


vi ~/.ssh/configなんかでabc用の設定を追加しておく

Host github-abc
User git
Port 22
HostName github.com
IdentityFile ~/.ssh/abc
TCPKeepAlive yes
IdentitiesOnly yes


これで設定はok

通常は以下のコマンドでcloneするところを

git clone git@github.com:account/sample.git

以下のコマンドに変更すれば、新たに作成した秘密鍵で認証を行うようになります

git clone git@github-abc:account/sample.git


posted by ねこまんま at 18:46
Comment(0) | TrackBack(0) | Git

2016年10月24日

Gitで認証鍵を使う

認証鍵が送られてきたのでそれでGitに接続するまでの試行錯誤。

まず、送られてきたのが

xxxxxxxxx.key
xxxxxxxxx.ppk

id_rsaとかid_rsa.pubじゃないんだね。

これはPutty形式と呼ばれるものでOpenSSH形式に変換しなくてはいけない。
参考:Putty形式をOpenSSH形式に変換 | tkd55 blog

まず.sshに移動してディレクトリを開く

cd ~/.ssh
open ./


開いたディレクトリにxxxxxxxxx.ppkを放り込んで以下のコマンドでOpenSSH形式の秘密鍵xxxxxxxxxを作成

puttygen xxxxxxxxx.ppk -O private-openssh -o xxxxxxxxx


GitHubで複数アカウントを切り替える: Web制作メモを参考に特定のホストの場合のみ上記の秘密鍵を利用するように変更。

Host ホスト名
User git
Port 22
Hostname ホスト名
IdentityFile ~/.ssh/xxxxxxxxx
TCPKeepAlive yes
IdentitiesOnly yes


これでアクセスできる
posted by ねこまんま at 18:17
Comment(0) | TrackBack(0) | Git

2016年09月06日

BacklogのGitにpushしたアイテムをheteml上のサーバーにデプロイする

BacklogのGitにpushしたアイテムをheteml上のサーバーにデプロイする方法

まずは、以下を参考にSSHでhetemlサーバーに入ります。

SSH のご利用方法 - レンタルサーバー「heteml(ヘテムル)」

つぎにSSH公開鍵を作成。途中鍵名でをきかれるのでid_rsaなどでパスレーズは空で大丈夫。

cd ~/.ssh
ssh-keygen
cat id_rsa.pub


表示された公開鍵をBacklogの個人設定の公開鍵に登録しましょう。

次にリポジトリ用のディレクトリを作成してclone

cd -- #直前のディレクトリに戻る
mkdir repo
cd repo
git clone xxx@xxx.backlog.jp:/XXX/xxx.git


次に公開サイトにアクセスするとリポジトリの内容を表示するようにシンボリックリンクをはります。

cd /home/sites/heteml/users/b/a/c/aaa/web/htdocs
ln -s /home/sites/heteml/users/b/a/c/aaa/repo/xxx/htdocs/assets assets


最後にwebhook用のファイルを作成し

sudo vi hook/pull.php


<?php
exec("cd /home/sites/heteml/users/b/a/c/aaa/repo/xxx && git pull");


hook/pull.phpをwebhookに登録すればpush時に公開サーバーに反映されるようになります。
posted by ねこまんま at 19:17
Comment(0) | TrackBack(0) | Git

2014年03月28日

Gitで削除されたリポジトリを非表示にする

複数人でGitを管理していると他の人が作成して削除したリポジトリが「git branch -a」などでずっと表示され続けます。

そういった場合は以下のコマンドで削除されたリポジトリを自分の環境でも削除することができます。

git fetch -p
posted by ねこまんま at 11:48
Comment(0) | TrackBack(0) | Git

2013年10月18日

GitHubページを作成

リポジトリにたいしてgh-pagesというブランチを作成してHTMLをアップするとプロジェクトページが作成できる。

http://ユーザー名.github.io/リポジトリ名/
posted by ねこまんま at 14:33
Comment(0) | TrackBack(0) | Git

2013年07月17日

Gitコマンド一覧

■ブランチ一覧表示
git branch

■リモートブランチの確認
git branch -r

■ブランチ作成
git branch

■ブランチ削除
git branch -d

■ブランチ削除(強制)
git branch -D

■リモートブランチの削除
git push origin :

■git add の取り消し
git reset HEAD

■特定ディレクトリ(xxx)の内容をadd
git add xxx/*

■新しいブランチを作成してcheckout
git checkout -b

■コミットの取り消し
git revert

■直前のコミットの取り消し
git reset --soft HEAD^

■直前のコミットの取り消し(作業ツリーにも反映)
git reset --hard HEAD^

■リポジトリを指定してpush
git push origin

■リポジトリの差分を反映
git pull
posted by ねこまんま at 13:32
Comment(0) | TrackBack(0) | Git

2013年06月04日

gitで削除したファイルを監視から外す

ディレクトリ構成をごそっと変えたのでインデックスを更新したいが、ちまちまとaddしていくのは面倒なときは

git add . 


で、新規追加ファイルをごそっと登録して

git add -u 


で、不要になったファイルのウォッチを削除できる。
posted by ねこまんま at 14:20
Comment(0) | TrackBack(0) | Git

2013年05月27日

GitHubでフォークしたプロジェクトを管理する

GitHubではプロジェクトページの右にあるforkボタンからプロジェクトのリモートリポジトリを複製することができます。複製すれば自分専用のリモートリポジトリーが作成されますので、以下のコマンドでローカルリポジトリと作業コピーをローカルに生成できます。

git clone git://github.com/xxx/test.git


では、フォークしたプロジェクトにファイルを追加してそれをフォーク元に反映させてみましょう。

echo hoge>hoge2.txt
git add hoge2.txt
git commit -m "add hoge2"
git push -u fork master


これで、フォークしたリポジトリへの反映は完了しましたGitHubよりフォーク元にPull Requestを送り、フォーク元の管理人が承認すれば追加した内容が反映されます。

フォーク元のプロジェクトの内容を取り込むには、まずフォーク元リポジトリをremoteに追加します。

git remote add upstream git://github.com/xxx/xxx.git


これで remoteでフォーク元リポジトリが使えますので取り込みマージできます。

git fetch upstream
git merge upstream/master
posted by ねこまんま at 21:40
Comment(0) | TrackBack(0) | Git

GitHubで複数アカウントを切り替える

GitHubで複数アカウントを切り替得ようとするときのメモ

まず、メインアカウントと同じ公開キーではGitHubには登録できないので別の公開鍵を作成する

cd ~/.ssh
ssh-keygen -t rsa2 -C "xxx@example.com"


ただ、このままではpush時などにメインの公開鍵が利用され権限エラーが発生する。

git push fork master
ERROR: Permission to xxx/test.git denied to yyy.
fatal: The remote end hung up unexpectedly


これはsshの設定で変更しなくてはいない。

~/.ssh/configに以下の内容を反映。サブアカウントはaaa.github.comにして、IdentityFileに先ほど作成した公開鍵を指定します。

Host aaa.github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa2
TCPKeepAlive yes
IdentitiesOnly yes


あとはgit remote addでリモートリポジトリを追加する際にaaa.github.comを指定します。

git remote add fork git@aaa.github.com:xxx/test.git


参考:github でサブアカウント、ユーザー切り替え - くろまほうさいきょうでんせつ
posted by ねこまんま at 02:37
Comment(0) | TrackBack(0) | Git

gitの設定を確認

以下のコマンドでGitの設定が確認できる

git config --global --list
posted by ねこまんま at 02:02
Comment(0) | TrackBack(0) | Git

2013年05月26日

GitHubでリポジトリを作ってからコミットするまでのメモ

■まずは SSH キーの作成

cd ~/.ssh


.sshディレクトリに移動

ssh-keygen -t rsa -C "xxx@example.com"


エンターを押すとSSHキーが作成される

cat id_rsa.pub


で作成したssh公開鍵が表示されます。それをGit Hubのアカウントセッティングから登録すればOK

■初期設定
ユーザ名とメールアドレスを登録しておきます

git config --global user.name hoge
git config --global user.email fuga@example.com


■最初のコミット
touch README.md


touchコマンドは指定されたファイルについて、アクセス時刻と更新時刻を現在の時刻に変更します。任意の時間に変更することもできます。指定したファイルが存在しない場合は空のファイルを新規に作成します。

git init


ローカルリポジトリを作成

git add README.md


先ほど作成したREADME.mdを監視ファイルに追加します。

git commit -m "first commit"


ローカルリポジトリにコミットします。

git remote add origin git@github.com:xxx/test.git


作成したGitHubのリモートリポジトリをoriginという名前で追加します。ちなみにgit remoteで現在登録されているリモートリポジトリの一覧が確認できます。git remote rm originで削除できます。

git push -u origin master


先ほど登録したorigin という名前のリモートリポジトリにmasterブランチの内容を反映させます。

これでGitHubにプロジェクトのアップが完了です。コミットしたREADME.mdはプロジェクトページのトップに反映されるのでマークダウンを利用してプロジェクトの概要を記述しましょう。
posted by ねこまんま at 18:03
Comment(0) | TrackBack(0) | Git