メモメモ…
修正,追記 (2015年11月04日)
git init
これをしたディレクトリにリポジトリが作られる
こちらだと、git fetch とかした時にIDとPassの入力を求められる。sshの認証を使ったほうが楽
git clone http://github.com/ユーザ名/リポジトリ名.git
git clone [email protected]/ユーザ名/リポジトリ名.git
このコマンドを打ったディレクトリに指定したリポジトリが複製される
git add **
コミットするファイルを選ぶ
git add .
とすると、変更されたすべてのファイル
git rm **
リポジトリから削除するファイルを選ぶ
git status
ローカルリポジトリで更新されたファイルを表示する
modified ***
deleted ***
とか出る。
git config core.filemode false
ローカルリポジトリのファイルのアクセス権限が変わった時の細かい通知を無視する
git commit
コミットする
パラメータの指定が出来る
-a
変更されたファイルを自動的にコミットする
新しいファイルはコミットされない
-m ‘ コミットメッセージ ‘
コミットメッセージの入力欄を表示させずに直接メッセージを書ける。
※ git push -f (–force)
-f のパラメータを付けてpushすると、現在のローカルリポジトリの内容をそのままリモートリポジトリに反映する 危ない。
一連の動作
masterから新しくブランチを作成し、変更をリモートの新しいブランチにpushする
git fetch -p # リモートの最新情報を得る。 -pでremoveとかされたブランチ情報も得る git checkout master # masterに移動 git pull origin/master # リモートのmasterに、ローカルのmasterをあわせる git checkout -b ブランチ名 # 最新のmasterからブランチを作成する. ついでにブランチ移動 ~~~~ いろいろ作業 git add . #作業内容をadd git commit -m "コメントを書く" git push origin ブランチ名 # ここをブランチ名にするとリモートに同名のブランチが作られる
複数のコミットを一つにまとめる (一つのIssueのコミットが複数の時とか) ※masterとかでやると歴史がぐちゃぐちゃになるので危険
## 現在のコミット状況
#--------------------------------------------------------
$git log
commit 2ea5684b3f09e705b3d483bcb67ad1dcc85952f8
Author: tlnk <tlnk@nknk>
Date: Wed Nov 4 12:23:49 2015 +0900
third
commit 43f8a21250b8ee973f0987659fa794fb0f5c7dca
Author: tlnk <tlnk@nknk>
Date: Wed Nov 4 12:23:06 2015 +0900
second
commit 4fa01a17e135461975f92210e7c64f032502bf94
Author: tlnk <tlnk@nknk>
Date: Wed Nov 4 12:22:50 2015 +0900
first
#--------------------------------------------------------
## これらの second と third をあわせる
$git rebase -i HEAD~~
## するとデフォルトでviが立ち上がる
#--------------------------------------------------------
pick 43f8a21 second
pick 2ea5684 third
# Rebase 4fa01a1..2ea5684 onto 4fa01a1 (2 command(s))
#--------------------------------------------------------
## squashにする
#--------------------------------------------------------
pick 43f8a21 second
squash 2ea5684 third
#--------------------------------------------------------
## :wq! (保存して終了)
## とすると新しいコミットメッセージを書けるので、適当に編集
#--------------------------------------------------------
# This is a combination of 2 commits.
# The first commit's message is:
second
# This is the 2nd commit message:
third
↓
Composit commit
- second
- third
#--------------------------------------------------------
## あとは:wq!するとcommit内容が変わる
#--------------------------------------------------------
$ git log
commit 2486f6d667e654f81dabe623ad50282b1e675ac4
Author: tlnk <tlnk@nknk>
Date: Wed Nov 4 12:23:06 2015 +0900
second
third
commit 4fa01a17e135461975f92210e7c64f032502bf94
Author: tlnk <tlnk@nknk>
Date: Wed Nov 4 12:22:50 2015 +0900
first
#--------------------------------------------------------
commitのハッシュ値も変わってしまっているので、このブランチをベースに作成していたブランチとmergeとかすると
conflict しやすい。なったら面倒なのでよく考えてやろう
メモメモ…