機械学習のプログラムについては勉強も兼ねてgitでバージョン管理をすることにしました。
以下はそのメモです。
参考「http://qiita.com/wnoguchi/items/f7358a227dfe2640cce3」
「https://git-scm.com/book/ja/v2」
git 初期設定について
・ユーザー情報の設定
git config --global user.name "* *"
git config --global user.email "username@example.com"
・エディタの設定
git config --global core.editor 'vim -c "set fenc=utf-8"'
git diffに色付け
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
・push方式の指定
git config --global push.default simple
・設定の確認
git config --list
★機械学習用のディレクトリ
ここからはこのディレクトリを参照する。
home/ML01
・リポジトリの設定
(「ML01」ディレクトリで)
git init
「.git」という隠しディレクトリが出来る。構成は以下の通り。
[root@localhost ML01]# ls .git
COMMIT_EDITMSG branches description index logs refs
HEAD config hooks info objects
*既存のリポジトリのクローンする場合。(SVNで言う「チェックアウト」のこと。)
git clone https://*/*/*
・ファイルの追跡
最初は下位のファイルがgitの監視対象(もしくは追跡対象)になっていない為、下記のコマンドで追加する(stageする、とも言う)
git add <パス、ファイル名>(プロジェクトのルートディレクトリでも良い)
例(まずは下記の「status」サブコマンドで状態を確認する)
[root@localhost ML01]# git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
kabu/
sum2/
nothing added to commit but untracked files present (use "git add" to track)
[root@localhost ML01]# git add .
もう一度状態を確認
[root@localhost ML01]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: kabu/1data.txt
new file: kabu/1data_back.txt
new file: kabu/learnstock
new file: kabu/learnstock.c
new file: sum2/out/sum2.out
new file: sum2/src/a.out
new file: sum2/src/sum2
new file: sum2/src/sum2.c
new file: sum2/src/sum2.out
・コミット
git commit
コミットメッセージを記入できる
例
[root@localhost ML01]# git commit
[master (root-commit) 7083543]
(記入したコミットメッセージ)
9 files changed, 203 insertions(+)
create mode 100644 kabu/1data.txt
create mode 100644 kabu/1data_back.txt
create mode 100755 kabu/learnstock
create mode 100644 kabu/learnstock.c
create mode 100755 sum2/out/sum2.out
create mode 100755 sum2/src/a.out
create mode 100755 sum2/src/sum2
create mode 100644 sum2/src/sum2.c
create mode 100755 sum2/src/sum2.out
・状態の確認
stage、commitされていないディレクトリ、ファイルを確認できる(変更があるかを確認するとも言える。)
git status
変更点がある場合(例)
[root@localhost ML02]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: kabu/1data.txt
new file: kabu/1data_back.txt
new file: kabu/learnstock
new file: kabu/learnstock.c
new file: sum2/out/sum2.out
new file: sum2/src/a.out
new file: sum2/src/sum2
new file: sum2/src/sum2.c
new file: sum2/src/sum2.out
変更点が無い場合は下記のメッセージとなる。
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
・ファイルの削除
追加のコミットから、削除後のコミットまでの一連の流れ
[root@localhost ML01]# git commit
[master 152a019] test 削除テスト用のコミット(初め)
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
[root@localhost ML01]# git rm test.txt
rm 'test.txt'
[root@localhost ML01]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: test.txt
[root@localhost ML01]# git commit
[master 38e7b94] test
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
[root@localhost ML01]#
・コミット履歴の閲覧
commit 38e7b94d09d62d2243a1b1db9b750bdfcfcc6b18
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:41:13 2016 +0900
test
削除テスト用のコミット(完了)
commit 152a01934e5de1fc8c80211048aba1476fe706dc
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:39:22 2016 +0900
test
削除テスト用のコミット(初め)
commit 86aff7042c15415f5260d4777632b3b03afb9cd1
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:02:14 2016 +0900
READMEを追加
commit 7083543bb27ca1971040672043d4b7ac464ea7b7
Author: sample <sample@sample.com>
・作業のやり直し
コミットメッセージを書き直したい場合
git commit --amend
コミットした後に、何かのファイルをステージするのを忘れてしまった場合
git commit -m 'initial commit'
git add forgotten_file→ステージし忘れたファイル名
git commit --amend
・stageしたファイルの取り消し
誤って「git add」で意図しないファイルをstageした場合。
git reset HEAD <file>...→駆除対象のファイル名
・ファイルへの変更の取り消し
git checkout -- <ファイル名>
・リモートリポジトリの追加
git remote
URLを貼る必要があるから、hithubの使い方を知ってからにしよう。
以上です。
以下はそのメモです。
参考「http://qiita.com/wnoguchi/items/f7358a227dfe2640cce3」
「https://git-scm.com/book/ja/v2」
git 初期設定について
・ユーザー情報の設定
git config --global user.name "* *"
git config --global user.email "username@example.com"
・エディタの設定
git config --global core.editor 'vim -c "set fenc=utf-8"'
git diffに色付け
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
・push方式の指定
git config --global push.default simple
・設定の確認
git config --list
★機械学習用のディレクトリ
ここからはこのディレクトリを参照する。
home/ML01
・リポジトリの設定
(「ML01」ディレクトリで)
git init
「.git」という隠しディレクトリが出来る。構成は以下の通り。
[root@localhost ML01]# ls .git
COMMIT_EDITMSG branches description index logs refs
HEAD config hooks info objects
*既存のリポジトリのクローンする場合。(SVNで言う「チェックアウト」のこと。)
git clone https://*/*/*
・ファイルの追跡
最初は下位のファイルがgitの監視対象(もしくは追跡対象)になっていない為、下記のコマンドで追加する(stageする、とも言う)
git add <パス、ファイル名>(プロジェクトのルートディレクトリでも良い)
例(まずは下記の「status」サブコマンドで状態を確認する)
[root@localhost ML01]# git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
kabu/
sum2/
nothing added to commit but untracked files present (use "git add" to track)
[root@localhost ML01]# git add .
もう一度状態を確認
[root@localhost ML01]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: kabu/1data.txt
new file: kabu/1data_back.txt
new file: kabu/learnstock
new file: kabu/learnstock.c
new file: sum2/out/sum2.out
new file: sum2/src/a.out
new file: sum2/src/sum2
new file: sum2/src/sum2.c
new file: sum2/src/sum2.out
・コミット
git commit
コミットメッセージを記入できる
例
[root@localhost ML01]# git commit
[master (root-commit) 7083543]
(記入したコミットメッセージ)
9 files changed, 203 insertions(+)
create mode 100644 kabu/1data.txt
create mode 100644 kabu/1data_back.txt
create mode 100755 kabu/learnstock
create mode 100644 kabu/learnstock.c
create mode 100755 sum2/out/sum2.out
create mode 100755 sum2/src/a.out
create mode 100755 sum2/src/sum2
create mode 100644 sum2/src/sum2.c
create mode 100755 sum2/src/sum2.out
・状態の確認
stage、commitされていないディレクトリ、ファイルを確認できる(変更があるかを確認するとも言える。)
git status
変更点がある場合(例)
[root@localhost ML02]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: kabu/1data.txt
new file: kabu/1data_back.txt
new file: kabu/learnstock
new file: kabu/learnstock.c
new file: sum2/out/sum2.out
new file: sum2/src/a.out
new file: sum2/src/sum2
new file: sum2/src/sum2.c
new file: sum2/src/sum2.out
変更点が無い場合は下記のメッセージとなる。
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
・ファイルの削除
追加のコミットから、削除後のコミットまでの一連の流れ
[root@localhost ML01]# git commit
[master 152a019] test 削除テスト用のコミット(初め)
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
[root@localhost ML01]# git rm test.txt
rm 'test.txt'
[root@localhost ML01]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: test.txt
[root@localhost ML01]# git commit
[master 38e7b94] test
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
[root@localhost ML01]# git status
On branch master
nothing to commit, working directory clean
[root@localhost ML01]#
・コミット履歴の閲覧
commit 38e7b94d09d62d2243a1b1db9b750bdfcfcc6b18
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:41:13 2016 +0900
test
削除テスト用のコミット(完了)
commit 152a01934e5de1fc8c80211048aba1476fe706dc
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:39:22 2016 +0900
test
削除テスト用のコミット(初め)
commit 86aff7042c15415f5260d4777632b3b03afb9cd1
Author: sample <sample@sample.com>
Date: Sun Jul 31 15:02:14 2016 +0900
READMEを追加
commit 7083543bb27ca1971040672043d4b7ac464ea7b7
Author: sample <sample@sample.com>
・作業のやり直し
コミットメッセージを書き直したい場合
git commit --amend
コミットした後に、何かのファイルをステージするのを忘れてしまった場合
git commit -m 'initial commit'
git add forgotten_file→ステージし忘れたファイル名
git commit --amend
・stageしたファイルの取り消し
誤って「git add」で意図しないファイルをstageした場合。
git reset HEAD <file>...→駆除対象のファイル名
・ファイルへの変更の取り消し
git checkout -- <ファイル名>
・リモートリポジトリの追加
git remote
URLを貼る必要があるから、hithubの使い方を知ってからにしよう。
以上です。