Git

【Windows】gitのインストールを行う。

WindowsマシンへのGitインストール

目的はコマンドプロンプトから使えるようにすること。

  • まずは公式にアクセス。

http://msysgit.github.io/

  • Downloadボタンをクリックしてインストーラーをダウンロードする。

  • ダウンロード完了したらインストーラーを起動する。

  • 基本的に指示に従いNextを押していればOKだが、下記画面の選択肢は真ん中のRun Git from the Windows Command Promptに必ずチェックを入れること。この選択によって、コマンドプロンプトからgitコマンドが使えるようになる。

  • インストールが完了したら、コマンドプロンプトを起動し下記コマンドを実行。

これで正常にバージョンが表示されればOK。

【Git】git push origin master の意味を知る。

すごくわかりやすい纏めがあったのでペタリ。

http://dqn.sakusakutto.jp/2011/10/git_push_origin_master.html

これはわかりやすい。一瞬で理解できた。

 

【Git】設定も鍵ファイルもパスワードもあっているのに「Permission denied」と怒られてしまう場合。

ssh-agentを起動するとうまくいくかもしれない。

まずはssh-agentを起動。

$ eval "$(ssh-agent)"

次に秘密鍵を起動したエージェントに登録する。

ssh-add ~/.ssh/path/to/id_rsa.key.file

するとパスワードを問われるので入力してエンターすれば完了。

自分の場合なぜかこれで繋がるようになった場面があったので一応メモ。

 

【Git】git submoduleの内容を取得する。

gitプロジェクトの中に別のgitリポジトリを参照しているものが含まれる場合(これがgit submodule)、
本体をcloneしただけだとサブモジュール内のファイルが取得されていないので下記コマンドを実行してやる必要がある。

git submodule update

これで取得されたはず。たぶん。
※違ったら修正します。

あとサブモジュールが含まれるプロジェクトで「git status」をしたときにmodifiedが消えなくてうざいときは、
そのサブモジュールフォルダまで移動して「git checkout .」とかを実行して変更を差し戻してやれば消える。

 

【Git】不要になったリモートブランチを削除する。

消したいブランチ名が「hoge」だとしたら。

まずはローカルブランチを削除

$ git branch -D hoge

次にリモートブランチを削除

$ git push origin :hoge

「:hoge」のコロンの意味やgit pushの実体に関する解説は下記ページが神分かりやすい。

http://shoma2da.hatenablog.com/entry/2014/03/08/234523

 

【Git】GitHubやBitbucketにpushしたcommitの削除方法。

メモ。

※自己責任で。

リモート上とローカルが同じ状態であることが前提。
また手順でコミットを消すと、そこで追加したファイルは削除されるので後で手で戻す必要がある。

まずリモート上のhistoryを遡って取得する。

例)4個遡る

git rebase -i HEAD~4

下記のようにpick行が表示される。

pick 6f6e387 modify
pick abc7e07 modify
pick c7fd962 modify
pick 76a95b7 modfiy

# Rebase 27fda5c..76a95b7 onto 27fda5c
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#

消したいコミットの行を削除後、保存して閉じる
※全部削除してしまうとキャンセルとみなされてしまうため1行は残すこと。

下記のメッセージが表示されれば成功

Successfully rebased and updated refs/heads/master.

下記コマンドで消えていることを確認。

git log

リモートにpushする。

git push origin +master

以上で完了。

pickを削除して保存した際、Successにならなかった場合の手順は下記URLを参照されたし。

http://pandazx.hatenablog.com/entry/2012/10/14/005716

 

【Git】ファイルのパーミッション変更を無視する。

$ git config core.filemode false

設定出来ているかの確認は下記の通り行う。

$ git config -l | grep filemode

 

【Git】diffツールでvimdiffを使いたい場合の設定。

メモ。

# diff、mergeツールでvimdiffを使用する設定
git config --global diff.tool vimdiff
git config --global merge.tool vimdiff

# diftoolを実行した際のプロンプトを表示しないようにする
git config --global difftool.prompt false

# コマンドエイリアスを設定して起動を楽にする
git config --global alias.dt difftool
git config --global alias.mt mergetool

vimdiffの起動

git dt /path/to/file.ext

vimdiffの使い方に関しては下記ページを参照されたし。

http://wada811.blogspot.com/2013/07/vimdiff-merge-and-difforig.html