MoChiwakiブログ

女性エンジニアがゆる~く書く備忘録ブログ 〜だいたいいつもつまづいている〜

オープンソースライセンスのまとめ

licenseまとめ

※主にソースコードの開示が必要かどうか

名前 正式名称 特徴
GPL GNU General Public License 著作権表示を保持
・無保証
ソースコードの開示が必要
LGPL GNU Lesser General Public License 著作権表示を保持
・無保証
・使ったファイルのみソースコードの開示が必要
AGPL Affero GPL 著作権表示が必要
ソースコードの開示が必要
MPL Mozilla Public License ・改変部分のコード開示が必要
(変更しなければ開示なし)
BSD Berkeley Software Distribution License 著作権表示を保持
・無保証
・謝辞として初期開発者を表示する事(オリジナルのみ)
ソースコードの開示規定なし
MIT X11 License、X License 著作権表示を保持
・無保証
ソースコードの開示規定なし
Apache License Apache v2 License 著作権表示が必要
・改変部分のコード開示

Gitコマンドメモ

fork

git clone [url]

リモート接続確認

git remote -v // 確認
git remote -av // コミットコメントも付ける

リモートや開発者のリポジトリをローカルに追加

※upstream はプロジェクトのマスターとかのリモートリポジトリとしてます
※origin は自分のリモートリポジトリとしています
※いつも作業するのはoriginから落としてきたローカルリポジトリで作業

git remote add [upstream] [url] // upstreamと接続する

git fetch [upstream] // upstreamの最新を取得

フェッチできたか確認

git branch -a // ローカルにあるブランチとフェッチしてきてるのの一覧

リモートリポジトリを落としてきてチェックアウト

// upstreamにあるtopic_branchをlocal_branchって名前でチェックアウト
git checkout -b local_branch upstream/topic_branch 
git checkout [branch名]

編集後

git status // 編集したファイル確認
git add [編集したファイル名] // コミットするファイル選択

コミット

git commit -m "コミットメッセージ"

push

コミットしたら、originにpush

git push origin //自分のリモートリポジトリ

githubなどでpull request

rebase(PR後upstreamにマージ前に)

rebaseするときは自分のローカルに最新のtopic_branchがあるといい
(fatchしてtopic_branchをpullまたは新しいのcheckout)

// 編集中ブランチにいる状態で
git checkout [編集中ブランチ]
git rebase [topic_branch]
git push origin [編集中ブランチ]

merge

git checkout [topic_branch]
//fast-foward 線がきれいになるマージ
git merge --ff [編集中ブランチ]   

//non-fast-foward 線にマージされたあとが残るマージ
git merge --no-ff [編集中ブランチ] 
git push upstream [topic_branch]

マージしたらPR用のブランチ消す(リモート)

git push --delete [origin] [ブランチ名]

ブランチ削除(ローカル内)

git branch -D [ブランチ名]

使えるコマンド 

gitの操作履歴見る

git log --graph
git reflog

rebaseとかmerge間違えたから戻る

git reset --hard ORIG_HEAD
// ↑またはreflog見てから、
git reset --hard HEAD@{数値} // hardは変更したものも破棄して全部HEAD{}に変更
git reset --soft HEAD@{数値} // softは変更した中身はそのままでHEAD{}に変更

diff ファイル名のみ

git diff  比較ブランチ名 --name-only

rename 名前変更

git branch -m [古いブランチ名] [新しいブランチ名]
git branch -m [新しいブランチ名] // いまチェックアウトしてるブランチに対して

リモートで消されたブランチをローカルでも消す

git branch -aで存在してるっぽいのに、
消そうとしたらいませんよ!って言う困るエラーのときの対処用

git fetch --prune

ファイル変更してないのにmodify出る場合の無視

git update-index --skip-worktree [ファイル名]
// 直すとき
git update-index --no-skip-worktree [ファイル名]

コミットを一つにまとめたい時

git rebase -i HEAD~3 // HEADはブランチ名でも可 数値はコミット履歴いくつ出すか
// エディタになったら、一緒にしたいコミットのところを pick -> squash に変更またはfixup
// コミットメッセージはpickの箇所が使われるので編集したければする。

.gitignoreをもっかい読み込みたい時

git rm -r --cached .

ちなみに、gitignoreを作るには gibo がおすすめ

brew install gibo
gibo java >> .gitignore

javaじゃなくても、 gibo -l で出てきた言語なら作成可能!

UIとしてみたいなら、SorceTreeがおすすめ