Git

gitおぼえがき

まだちょっとしか使ったことがない初心者です

既にサーバにあるものをそのまま新しいGitリポジトリに入れる

リモートリポジトリにBitbucketを使っている。
既にリポジトリはBitbucket側で作った直後で空っぽの状態。
ssh接続に必要な鍵ペアなどの設定が済んでいる前提。

$ git init
$ git add .
$ git commit -m "first commit" # 適当にコメントつけておく
$ git remote add 短い別名 git@bitbucket.org:ユーザー名/リポジトリ名.git
$ git push -u 短い別名 master:master

-uをつけると今後のpush先デフォルトになるっぽい。
リポジトリに入れたくない余計なファイルがある場合は、commit前に

$ git status

で確認しておいて、リポジトリには入れたくないファイルを

$ git rm --cached ファイル名 …

でアンステージしておく。再度git statusで確認してからcommitする。
予め、今後ずっといれたくないファイル名を.gitignore に記述しておく方法もある。
あとから.gitignoreした場合でもステージに残っているので、消さないといけない。
誤って--cachedをつけ忘れると作業中のファイル実体も削除されてしまうので要注意!

リモートリポジトリからサーバに展開する

設置予定の親ディレクトリで作業開始する

$ git clone git@bitbucket.org:ユーザー名/リポジトリ名.git
$ cd リポジトリ名
$ git remote rename origin 短い別名
$ cd ..
$ mv リポジトリ名 ディレクトリ名

cloneしたての状態だと、デフォルトではリポジトリ名と同名のディレクトリを新規作成して放り込まれ、短い別名には一律「origin」がついてしまうっぽい。
短い別名についてはclone実行の際に-oオプションで指定しても良いらしい。
ディレクトリ名を変えたい場合は上記のように後からリネームするか、予め任意の名称でディレクトリを作っておいて、clone実行の際にリポジトリ名.gitの後ろにそのディレクトリ名を指定することでその中にcloneされる。

今いる場所のgitリポジトリの短い別名を調べる

$ git remote -vv

サブディレクトリが違うgitリポジトリに属している場合やユーザーごとにリモートリポジトリへのアクセスURLが違う場合など、これで確認しておく。

リポジトリと異なるファイルを炙り出す

$ git fetch
$ git status

リポジトリにない、リポジトリにはあるがこちらにない、両方にあるが内容が異なる、といったファイルはこれで調べられる。
具体的にどう違うか?はローカルリポジトリとの比較になってしまうがgit diffで調べられる。

まだまだわけがわかりません、もっと使っていかなくては。