プログラミング(programming)/git
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
] [
Japanese
/
English
]
Research
research overview
papers
media
Members
professors
graduates
undergraduates
alumni
Links
Links
Classes
Computer Programming Basic II
Special Lecture of Mechanical Intelligent System Engineering I
Start:
[[プログラミング(programming)]] [[svn>プログラミング(prog...
#contents
* Git [#f24a13f3]
** Gitとは [#xcacfa35]
- バージョン管理システムのひとつ(svnよりも新しい)
- もともとはLinuxカーネルのソース管理をするためにリーナス...
- 分散型バージョン管理システム(svn は集中型)
** 特徴(svn との違いとか) [#bb0fc9a1]
- とりあえず
-- Subversionと同スペル異義コマンドがあるので注意
- 集中型と分散型
-- 集中型(svn):サーバに唯一のリポジトリがあり,各々のP...
-- 分散型(git):サーバにリモートリポジトリ,各々のPCに...
-- 各々はローカルリポジトリを更新していく(commit コマン...
-- ある程度 commit したら,適当なタイミングでリモートに更...
--- これを push という
--- svn の commit は,1commit ごとに push することに相当...
-- 逆にローカルにリモートの更新分を持ってくることを pull ...
--- svn update に相当する
-- ブランチ(履歴の枝分かれ)は、リポジトリ毎に存在する
--- 「どのリポジトリの」ブランチを指しているのかを明示す...
--- masterはローカルリポジトリのmasterブランチ、origin/ma...
--- git pullは、git fetch(リモートリポジトリの最新版をori...
** 用語集 [#vd3db1d0]
- リポジトリ
-- ファイル履歴を管理する場所
- ステージング
-- ファイルをコミット対象にすること
- コミット
-- ファイル履歴の単位.1更新=1コミット
-- ファイル履歴を更新すること
- プッシュ
-- リモートリポジトリに履歴情報を反映
- プル
-- リモートリポジトリの履歴情報をローカルに反映
- ブランチ
-- 履歴の枝分かれ
- HEAD
-- 現在いるブランチの先頭を表す。
** 主なコマンド [#bafd015d]
- clone 外部のリポジトリから最新版を手元に持ってくる(リ...
git clone https://github.com/euslisp/EusLisp euslisp
git clone https://github.com/euslisp/jskeus
これで、カレントディレクトリに euslisp/ と jskeus/ ができ...
- add ファイルをステージングする
- commit ステージングされたファイルをコミットする
git commit -m "<commit message>"
とするとエディタを開くことなくコミットメッセージ(ワンラ...
git commit -a
とすると管理対象のファイルで変更されたものを自動的にステ...
まとめて
git commit -am "<commit message>"
- log 履歴を見る
- status リポジトリの状態を見る(コミット対象や変更された...
- diff ブランチや履歴の差分を取る
- grep git管理下のファイルをgrep.git関連のファイルは無視...
- fetch リモートリポジトリの履歴をローカルに持ってくる(...
- pull リモートリポジトリの履歴をローカルに反映(fetch + ...
- push リモートリポジトリにローカルの履歴を反映
- checkout ブランチの移動
git checkout <branch name> # 既存ブランチに移動
git checkout -b <branch name> # 新規ブランチを切ってそこ...
- branch ブランチの操作
git branch # ブランチ一覧
git branch <branch name> #ブランチ作成
git branch -d <branch name> # ブランチ削除
- merge ブランチの統合
git checkout master
git merge <branch name>
とすると<branch name>ブランチをmasterに統合する
- rebase 履歴の改変(使用には注意,やり方を調べてからやる...
- reset 履歴を戻す(使用にはやや注意)
- rm 管理対象のファイルを削除する
-- 普通にシェルコマンドでrmした場合には,改めてgit rmしな...
- mv 管理対象のファイルを移動/リネームする
-- rmと似たような感じ
[[svnコマンドから探すgitコマンド>http://qiita.com/koto/it...
** コミットメッセージの書き方 [#a803b24a]
- 1行目にはそのコミットの概要やタイトルを書く
- ''2行目は空行にする''
- 3行目以降に詳細を書く
- 各行は70文字以内くらいを推奨
-- それ以上になると git log などで表示が崩れる
- 例1
add a config file for TRI calculation
* robot.conf
* calc_param.conf
* mass_param.conf
- 例2
ロボット本体の図を追加
ロボット本体の図
* 正面図
* アイソメ図
** .gitignore [#gitignore]
- 管理対象にしたくないものを記述するファイル
- git管理対象のディレクトリ下に.gitignoreファイルを作って...
- .gitignore自体もgit管理下に置いておくとよい
- 例えば以下のような.gitignoreを置くとhoge.pdf以外のpdfフ...
*.pdf
!hoge.pdf
- [[gibo>https://github.com/simonwhitaker/gibo]]や[[gitig...
-- giboの場合
gibo TeX > .gitignore # LaTeXの場合
gibo C++ CMake > .gitignore # C++とCMakeを使う場合
- 参考:[[gitで管理しないファイルを無視させる .gitignore>...
-githubで管理されているgitignore https://github.com/githu...
** メモ [#hde88f7c]
- gitのエラーメッセージはどうすればうまくいくかが書かれて...
- ブランチを使わないにしても,ブランチの概念を理解するこ...
** 逆引き的な [#n52b0030]
- git clone して取ってきたツリーの中で、特定のファイルを...
-- 戻したいコミットのリビジョンを調べるて、checkoutすれば...
git log --before=<日付:2014.3.5のように> <ファイル>
git checkout <リビジョン> <ファイル>
-- 補足
---リビジョンの見方~
<リビジョン>は git log を見て
commit *******
となっている*******の部分です.
git log が以下のようになっている場合は 5ced83... の部分...
最初の数文字だけ入力すれば認識してくれると思います.
直近のコミットであれば HEAD HEAD^ HEAD^^ とすると
最新,1つ前,2つ前... を指定できます.
--- git log 例)
commit 5ced8356bf7ce04d6e780db9333646741b13facc
Author: tsuneoka <tsuneoka@mizuuchi.lab.tuat.ac.jp>
Date: Wed Mar 5 22:39:41 2014 +0900
abstract, introduction, about control system
-[[管理下にないディレクトリをディレクトリだけ追加する>htt...
touch logs/.gitignore
git add logs/.gitignore
git commit
※無視対象が無い場合,.gitkeepというファイル名を使うことも...
- svnで管理していたリポジトリをgit管理に移行するには?
-- [[git-svn>./git-svn]]を使う([[./svnリポジトリをgitリ...
- rm したファイルを全て`git rm`する方法
git rm `git ls-files --deleted`
-- [[Qiita:rmした複数のファイルをまとめてgit rmする>http:...
&aname(GitHub);
* [[GitHub>https://GitHub.com]] [#o3e5471b]
** GitHub とは [#cb06b4c2]
- リポジトリをWeb上に作れるサービス
- 公開リポジトリならばフリーで無制限
** 抑えておくポイント [#a2f7faaa]
- GitHub のリポジトリはユーザに紐付けられる
- *.ac.jp アドレスを持っていると education アカウントにで...
-- [[GitHub Education>https://education.github.com/]]
-- 通常フリーでは作れないプライベートリポジトリを作れるア...
- コミットできるには、最近はSSH?([[./github+ssh>github+...
** 特徴的な機能 [#b08d58a1]
- fork
-- 他人のリポジトリをコピーして自分に紐付ける
-- 「オリジナルに気に入らないところがあるので自分でコード...
-- 「こんな機能が欲しいので自分でコード追加しますね」
- pull request
-- forkしてきた(自分のところにある)リポジトリに修正を加...
-- 修正(機能追加)がうまく行ったのでオリジナルでもこの修...
-- オリジナルに pull request を出す,という流れ
-- 「こんな修正したのでちょっと見てください.もし良ければ...
-- 「こんな機能追加したんですけど pull してもらえませんか...
** [[プログラミング(programming)/git/MizuuchiLab]] [#ac63...
- https://github.com/MizuuchiLab というのを[[作ってみた(...
-- [[Organization>https://docs.github.com/ja/organization...
-- [[Team と Organization の違い?>https://docs.github.co...
- 使い方など、独立ページを作って、わかったことを書いてい...
&aname(gitbucket);
* [[GitBucket>https://mizuuchi.lab.tuat.ac.jp/gitbucket/]...
- 研究室サーバ内で動いてい%%る%%たGitHubクローン
- pull request/fork機能がある
- ログインした人だけが中を見られるので基本的にpublicリポ...
-- リポジトリオーナー以外の人が弄りたいときにはpull reque...
- %%https で、証明証発行機関が怪しいと文句を言われれるの...
-- 2016年2月に[[letsencryptで証明書を取得した>コンピュー...
- [[./GitBucket運用]]
- [[恒岡君によるチュートリアル>https://mizuuchi.lab.tuat....
* 参考文献 [#s4c8010e]
- [[Gitチュートリアル - Atlassian>https://www.atlassian.c...
- [[Gitチートシート - Qiita>http://qiita.com/ktaro/items/...
- [[いつやるの?git入門>http://www.slideshare.net/matsuka...
- [[こわくないgit>http://www.slideshare.net/kotas/git-152...
- [[Pro Git>http://progit-ja.github.io/]]:読めば必要なこ...
- [[Gitでやらかした時に使える19個の奥義 - Qiita>http://qi...
End:
[[プログラミング(programming)]] [[svn>プログラミング(prog...
#contents
* Git [#f24a13f3]
** Gitとは [#xcacfa35]
- バージョン管理システムのひとつ(svnよりも新しい)
- もともとはLinuxカーネルのソース管理をするためにリーナス...
- 分散型バージョン管理システム(svn は集中型)
** 特徴(svn との違いとか) [#bb0fc9a1]
- とりあえず
-- Subversionと同スペル異義コマンドがあるので注意
- 集中型と分散型
-- 集中型(svn):サーバに唯一のリポジトリがあり,各々のP...
-- 分散型(git):サーバにリモートリポジトリ,各々のPCに...
-- 各々はローカルリポジトリを更新していく(commit コマン...
-- ある程度 commit したら,適当なタイミングでリモートに更...
--- これを push という
--- svn の commit は,1commit ごとに push することに相当...
-- 逆にローカルにリモートの更新分を持ってくることを pull ...
--- svn update に相当する
-- ブランチ(履歴の枝分かれ)は、リポジトリ毎に存在する
--- 「どのリポジトリの」ブランチを指しているのかを明示す...
--- masterはローカルリポジトリのmasterブランチ、origin/ma...
--- git pullは、git fetch(リモートリポジトリの最新版をori...
** 用語集 [#vd3db1d0]
- リポジトリ
-- ファイル履歴を管理する場所
- ステージング
-- ファイルをコミット対象にすること
- コミット
-- ファイル履歴の単位.1更新=1コミット
-- ファイル履歴を更新すること
- プッシュ
-- リモートリポジトリに履歴情報を反映
- プル
-- リモートリポジトリの履歴情報をローカルに反映
- ブランチ
-- 履歴の枝分かれ
- HEAD
-- 現在いるブランチの先頭を表す。
** 主なコマンド [#bafd015d]
- clone 外部のリポジトリから最新版を手元に持ってくる(リ...
git clone https://github.com/euslisp/EusLisp euslisp
git clone https://github.com/euslisp/jskeus
これで、カレントディレクトリに euslisp/ と jskeus/ ができ...
- add ファイルをステージングする
- commit ステージングされたファイルをコミットする
git commit -m "<commit message>"
とするとエディタを開くことなくコミットメッセージ(ワンラ...
git commit -a
とすると管理対象のファイルで変更されたものを自動的にステ...
まとめて
git commit -am "<commit message>"
- log 履歴を見る
- status リポジトリの状態を見る(コミット対象や変更された...
- diff ブランチや履歴の差分を取る
- grep git管理下のファイルをgrep.git関連のファイルは無視...
- fetch リモートリポジトリの履歴をローカルに持ってくる(...
- pull リモートリポジトリの履歴をローカルに反映(fetch + ...
- push リモートリポジトリにローカルの履歴を反映
- checkout ブランチの移動
git checkout <branch name> # 既存ブランチに移動
git checkout -b <branch name> # 新規ブランチを切ってそこ...
- branch ブランチの操作
git branch # ブランチ一覧
git branch <branch name> #ブランチ作成
git branch -d <branch name> # ブランチ削除
- merge ブランチの統合
git checkout master
git merge <branch name>
とすると<branch name>ブランチをmasterに統合する
- rebase 履歴の改変(使用には注意,やり方を調べてからやる...
- reset 履歴を戻す(使用にはやや注意)
- rm 管理対象のファイルを削除する
-- 普通にシェルコマンドでrmした場合には,改めてgit rmしな...
- mv 管理対象のファイルを移動/リネームする
-- rmと似たような感じ
[[svnコマンドから探すgitコマンド>http://qiita.com/koto/it...
** コミットメッセージの書き方 [#a803b24a]
- 1行目にはそのコミットの概要やタイトルを書く
- ''2行目は空行にする''
- 3行目以降に詳細を書く
- 各行は70文字以内くらいを推奨
-- それ以上になると git log などで表示が崩れる
- 例1
add a config file for TRI calculation
* robot.conf
* calc_param.conf
* mass_param.conf
- 例2
ロボット本体の図を追加
ロボット本体の図
* 正面図
* アイソメ図
** .gitignore [#gitignore]
- 管理対象にしたくないものを記述するファイル
- git管理対象のディレクトリ下に.gitignoreファイルを作って...
- .gitignore自体もgit管理下に置いておくとよい
- 例えば以下のような.gitignoreを置くとhoge.pdf以外のpdfフ...
*.pdf
!hoge.pdf
- [[gibo>https://github.com/simonwhitaker/gibo]]や[[gitig...
-- giboの場合
gibo TeX > .gitignore # LaTeXの場合
gibo C++ CMake > .gitignore # C++とCMakeを使う場合
- 参考:[[gitで管理しないファイルを無視させる .gitignore>...
-githubで管理されているgitignore https://github.com/githu...
** メモ [#hde88f7c]
- gitのエラーメッセージはどうすればうまくいくかが書かれて...
- ブランチを使わないにしても,ブランチの概念を理解するこ...
** 逆引き的な [#n52b0030]
- git clone して取ってきたツリーの中で、特定のファイルを...
-- 戻したいコミットのリビジョンを調べるて、checkoutすれば...
git log --before=<日付:2014.3.5のように> <ファイル>
git checkout <リビジョン> <ファイル>
-- 補足
---リビジョンの見方~
<リビジョン>は git log を見て
commit *******
となっている*******の部分です.
git log が以下のようになっている場合は 5ced83... の部分...
最初の数文字だけ入力すれば認識してくれると思います.
直近のコミットであれば HEAD HEAD^ HEAD^^ とすると
最新,1つ前,2つ前... を指定できます.
--- git log 例)
commit 5ced8356bf7ce04d6e780db9333646741b13facc
Author: tsuneoka <tsuneoka@mizuuchi.lab.tuat.ac.jp>
Date: Wed Mar 5 22:39:41 2014 +0900
abstract, introduction, about control system
-[[管理下にないディレクトリをディレクトリだけ追加する>htt...
touch logs/.gitignore
git add logs/.gitignore
git commit
※無視対象が無い場合,.gitkeepというファイル名を使うことも...
- svnで管理していたリポジトリをgit管理に移行するには?
-- [[git-svn>./git-svn]]を使う([[./svnリポジトリをgitリ...
- rm したファイルを全て`git rm`する方法
git rm `git ls-files --deleted`
-- [[Qiita:rmした複数のファイルをまとめてgit rmする>http:...
&aname(GitHub);
* [[GitHub>https://GitHub.com]] [#o3e5471b]
** GitHub とは [#cb06b4c2]
- リポジトリをWeb上に作れるサービス
- 公開リポジトリならばフリーで無制限
** 抑えておくポイント [#a2f7faaa]
- GitHub のリポジトリはユーザに紐付けられる
- *.ac.jp アドレスを持っていると education アカウントにで...
-- [[GitHub Education>https://education.github.com/]]
-- 通常フリーでは作れないプライベートリポジトリを作れるア...
- コミットできるには、最近はSSH?([[./github+ssh>github+...
** 特徴的な機能 [#b08d58a1]
- fork
-- 他人のリポジトリをコピーして自分に紐付ける
-- 「オリジナルに気に入らないところがあるので自分でコード...
-- 「こんな機能が欲しいので自分でコード追加しますね」
- pull request
-- forkしてきた(自分のところにある)リポジトリに修正を加...
-- 修正(機能追加)がうまく行ったのでオリジナルでもこの修...
-- オリジナルに pull request を出す,という流れ
-- 「こんな修正したのでちょっと見てください.もし良ければ...
-- 「こんな機能追加したんですけど pull してもらえませんか...
** [[プログラミング(programming)/git/MizuuchiLab]] [#ac63...
- https://github.com/MizuuchiLab というのを[[作ってみた(...
-- [[Organization>https://docs.github.com/ja/organization...
-- [[Team と Organization の違い?>https://docs.github.co...
- 使い方など、独立ページを作って、わかったことを書いてい...
&aname(gitbucket);
* [[GitBucket>https://mizuuchi.lab.tuat.ac.jp/gitbucket/]...
- 研究室サーバ内で動いてい%%る%%たGitHubクローン
- pull request/fork機能がある
- ログインした人だけが中を見られるので基本的にpublicリポ...
-- リポジトリオーナー以外の人が弄りたいときにはpull reque...
- %%https で、証明証発行機関が怪しいと文句を言われれるの...
-- 2016年2月に[[letsencryptで証明書を取得した>コンピュー...
- [[./GitBucket運用]]
- [[恒岡君によるチュートリアル>https://mizuuchi.lab.tuat....
* 参考文献 [#s4c8010e]
- [[Gitチュートリアル - Atlassian>https://www.atlassian.c...
- [[Gitチートシート - Qiita>http://qiita.com/ktaro/items/...
- [[いつやるの?git入門>http://www.slideshare.net/matsuka...
- [[こわくないgit>http://www.slideshare.net/kotas/git-152...
- [[Pro Git>http://progit-ja.github.io/]]:読めば必要なこ...
- [[Gitでやらかした時に使える19個の奥義 - Qiita>http://qi...
Page: