- 投稿日:2019-04-11T23:47:58+09:00
【チートシート】目的別GitHubの使い方【初心者用】
当記事の目的
以下の悩みを解決
- GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
- はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない
前提条件
- 構成管理システムの概念的な話は一切触れません
- GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
- fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
- 筆者がGitHubに慣れていくにつれ加筆されていきます
GitHubコマンド手順
case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!
手順
Clone or downloadをクリックし、表示されたURLを控える(
https://github.com/自分のリポジトリ.gitとする)ローカルリポジトリを作成したいフォルダに移動
$ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name
- branch_nameは、リモートのどのブランチをクローンするか指定
- local_folder_nameは、作成するローカルリポジトリの名称(デフォルトは
リモートURL-ブランチ名)ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する
詰まりそうな点
- 社内でエンタープライズのGitを利用している場合や、セキュリティ意識の高い方で2段階認証設定をしている場合は、GitHubホームページ上でアクセストークンを発行して、PWの代わりに使う必要がある。参考:Githubの2段階認証を実施してgitコマンドが使えないときにやったこと
case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!
手順
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch * original_branch_name
$ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
- new_branch_nameは、作成する新しいブランチの名称
- original_branch_nameは、基にするローカルのブランチ名称
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch original_branch_name * new_branch_namecase3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git statusでチェックアウトしてからの変更情報を確認
deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)modified: changed_file.pyは、変更が加えられたファイルdeleted: deleted_file.pyは、消去されたファイルnew_file.pyは、新規で作成されたファイルnew_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: moved_file.py deleted: deleted_file.py modified: changed_file.py 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) new_folder/moved_file.py new_file.py no changes added to commit (use "git add" and/or "git commit -a")
- この状態を想定して、まずはaddしていく
$ git add moved_file.py$ git add deleted_file.py$ git add changed_file.py$ git add new_folder/moved_file.py$ git add new_file.py$ git statusでaddした後の状態を確認
- それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name コミット予定の変更点: (use "git reset HEAD <file>..." to unstage) renamed: moved_file.py -> new_folder/moved_file.py modified: changed_file.py deleted: deleted_file.py new file: new_file.py Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) no changes added to commit (use "git add" and/or "git commit -a")
$ git commit -m 'message'でコミットを実行
- messageは任意のコミットメッセージを入力
詰まりそうな点
- 間違えてaddして、取り消したい場合は
$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある- commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう
case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!
手順
$ git push origin new_branch_name
- originは固定値
- new_branch_nameはリモートに反映させたいブランチ名称
詰まりそうな点
- リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される
case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!
手順
$ git fetch origin
- [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
- original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), done. From https://github.com/自分のリポジトリ * [new branch] new_branch -> origin/new_branch c5996a4..47d6cc0 original_branch_name -> origin/original_branch_name
$ git reset --hard origin/original_branch_name
git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称- fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
$ git checkout original_branch_nameで、reset後のブランチに移動する$ git clean -df .で余分なファイルを削除する
- ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
- ここまで実行することで、リモートブランチと全く同じ状態になる
詰まりそうな点
- fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説
続く
- 投稿日:2019-04-11T23:47:58+09:00
【チートシート】目的別GitHubの使い方
当記事の目的
以下の悩みを解決
- GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
- はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない
前提条件
- 構成管理システムの概念的な話は一切触れません
- GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
- fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
- 筆者がGitHubに慣れていくにつれ加筆されていきます
GitHubコマンド手順
case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!
手順
Clone or downloadをクリックし、表示されたURLを控える(
https://github.com/自分のリポジトリ.gitとする)ローカルリポジトリを作成したいフォルダに移動
$ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name
- branch_nameは、リモートのどのブランチをクローンするか指定
- local_folder_nameは、作成するローカルリポジトリの名称(デフォルトは
リモートURL-ブランチ名)ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する
詰まりそうな点
- 社内でエンタープライズのGitを利用している場合や、セキュリティ意識の高い方で2段階認証設定をしている場合は、GitHubホームページ上でアクセストークンを発行して、PWの代わりに使う必要がある。参考:Githubの2段階認証を実施してgitコマンドが使えないときにやったこと
case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!
手順
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch * original_branch_name
$ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
- new_branch_nameは、作成する新しいブランチの名称
- original_branch_nameは、基にするローカルのブランチ名称
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch original_branch_name * new_branch_namecase3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git statusでチェックアウトしてからの変更情報を確認
deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)modified: changed_file.pyは、変更が加えられたファイルdeleted: deleted_file.pyは、消去されたファイルnew_file.pyは、新規で作成されたファイルnew_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: moved_file.py deleted: deleted_file.py modified: changed_file.py 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) new_folder/moved_file.py new_file.py no changes added to commit (use "git add" and/or "git commit -a")
- この状態を想定して、まずはaddしていく
$ git add moved_file.py$ git add deleted_file.py$ git add changed_file.py$ git add new_folder/moved_file.py$ git add new_file.py$ git statusでaddした後の状態を確認
- それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name コミット予定の変更点: (use "git reset HEAD <file>..." to unstage) renamed: moved_file.py -> new_folder/moved_file.py modified: changed_file.py deleted: deleted_file.py new file: new_file.py Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) no changes added to commit (use "git add" and/or "git commit -a")
$ git commit -m 'message'でコミットを実行
- messageは任意のコミットメッセージを入力
詰まりそうな点
- 間違えてaddして、取り消したい場合は
$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある- commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう
case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!
手順
$ git push origin new_branch_name
- originは固定値
- new_branch_nameはリモートに反映させたいブランチ名称
詰まりそうな点
- リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される
case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!
手順
$ git fetch origin
- [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
- original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), done. From https://github.com/自分のリポジトリ * [new branch] new_branch -> origin/new_branch c5996a4..47d6cc0 original_branch_name -> origin/original_branch_name
$ git reset --hard origin/original_branch_name
git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称- fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
$ git checkout original_branch_nameで、reset後のブランチに移動する$ git clean -df .で余分なファイルを削除する
- ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
- ここまで実行することで、リモートブランチと全く同じ状態になる
詰まりそうな点
- fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説
続く
- 投稿日:2019-04-11T23:41:36+09:00
よく使うrpmコマンドまとめ
最近使うことがあるのでまとめてみました。
RPMはパッケージ管理を行うシステムで、
CentOSとか、RedHat系のディストリビューションに採用されています。RPMのパッケージは拡張子が.rpmとなっており、
これを操作するのがrpmコマンドです。基本的な書き方
$ rpm {オプション} {パッケージ名}オプション部分は基本的に複数のrpmオプションを
組み合わせて使います。
なので詳しいオプションはここでは記載しません。コマンド
・パッケージのインストール $ rpm -ivh {パッケージ名} ・パッケージのアップグレード $ rpm -Uvh {パッケージ名} ・パッケージのアンインストール $ rpm -evh {パッケージ名} ・インストールされているrpmパッケージを一覧表示 $ rpm -qa {パッケージ名} ・rpmパッケージの情報を表示 $ rpm -qi {パッケージ名} ・パッケージからインストールされたファイルを一覧表示 $ rpm -ql {パッケージ名}
- 投稿日:2019-04-11T21:34:41+09:00
Linuxにpython3実行環境を構築した話
「pipてなに?エレキバン?」
というレベルの私がpython3/pip/pythonのモジュールが動く環境を構築した時のメモ。入れるもの入れまくる
python3
-> yum で
bashyum search python36 sudo yum install rh-python36.x86_64PATHが通っていないので、python2に向いているシンボリックリンクをpython3に向くように作り直し
bash# pythonコマンドのありかを確認 which python # ↑で確認したパスに移動 cd /usr/bin # すでにシンボリックリンクがあるので削除 sudo rm python # python3に向くリンクを作成 sudo ln -s /usr/local/python/bin/python pythonpip
-> yum で
bashyum search pip sudo yum install rh-python36-python-pip.noarchモジュール類
-> pip で
bashsudo pip install numpy適当なモジュールを入れようとすると
bashYou are using pip version 9.0.1, however version 19.0.3 is available. You should consider upgrading via the 'pip install --upgrade pip' command.pipのバージョンが古くて怒られる。自らをバージョンアップ。
bashsudo pip install --upgrade pip動確
テストスクリプトをこちらから拝借
Pythonを使えるNumPyのインストール方法や基本的な使…|Udemy メディアtest.py#! /usr/bin/python import numpy as np #配列(ndarray) test1 = np.array([1,2,3,4,5]) #配列のから条件が満たされた要素番号を取得する test2 = np.where(test1>=3) print(test2[0])成功例
bash./test.py [2 3 4]モジュールがないよエラーになる場合
bash./test.py (略) ModuleNotFoundError: No module named 'numpy'モジュール検索のパスが違うらしい
モジュール検索のパス設定確認
pythonコンソールログインpython(console)import sys print(sys.path)結果を記憶①
インストールしたモジュールがどこに置かれちゃったか確認
bashfind / -name numpy結果を記憶②
対応方法としては下記のどちらか
1)②を①に mv する
2)②のパスを①に追加する1)だとモジュール追加するたびにmvしないといけなさそうなので2)のほうがよいかもしれない。
- 投稿日:2019-04-11T19:06:33+09:00
【チートシート】GitHubコマンド手順【やりたいこと別】
当記事の目的
以下の悩みを解決
- GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
- はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない
※重要 前提条件
- 構成管理システムの概念的な話は一切触れません
- GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
- fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
- 筆者がGitHubに慣れていくにつれ加筆されていきます
GitHubコマンド手順
case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!
手順
Clone or downloadをクリックし、表示されたURLを控える(
https://github.com/自分のリポジトリ.gitとする)ローカルリポジトリを作成したいフォルダに移動
$ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name
- ※branch_nameは、リモートのどのブランチをクローンするか指定
- ※local_folder_nameは、作成するローカルリポジトリの名称(デフォルトは
リモートURL-ブランチ名)ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する
詰まりそうな点
- 社内でエンタープライズのGitを利用している場合や、セキュリティ意識の高い方で2段階認証設定をしている場合は、GitHubホームページ上でアクセストークンを発行して、PWの代わりに使う必要がある。参考:Githubの2段階認証を実施してgitコマンドが使えないときにやったこと
case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!
手順
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch * original_branch_name
$ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
- new_branch_nameは、作成する新しいブランチの名称
- original_branch_nameは、基にするローカルのブランチ名称
$ git branchでブランチの状態を確認shun@shun-VirtualBox:~/xxx/yyy$ git branch original_branch_name * new_branch_namecase3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!
- gitクローンされた、ローカルリポジトリ下にいることを確認
$ git statusでチェックアウトしてからの変更情報を確認
deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)modified: changed_file.pyは、変更が加えられたファイルdeleted: deleted_file.pyは、消去されたファイルnew_file.pyは、新規で作成されたファイルnew_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: moved_file.py deleted: deleted_file.py modified: changed_file.py 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) new_folder/moved_file.py new_file.py no changes added to commit (use "git add" and/or "git commit -a")
- この状態を想定して、まずはaddしていく
$ git add moved_file.py$ git add deleted_file.py$ git add changed_file.py$ git add new_folder/moved_file.py$ git add new_file.py$ git statusでaddした後の状態を確認
- それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status ブランチ new_branch_name コミット予定の変更点: (use "git reset HEAD <file>..." to unstage) renamed: moved_file.py -> new_folder/moved_file.py modified: changed_file.py deleted: deleted_file.py new file: new_file.py Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) 追跡されていないファイル: (use "git add <file>..." to include in what will be committed) no changes added to commit (use "git add" and/or "git commit -a")
$ git commit -m 'message'でコミットを実行
- messageは任意のコミットメッセージを入力
詰まりそうな点
- 間違えてaddして、取り消したい場合は
$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある- commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう
case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!
手順
$ git push origin new_branch_name
- originは固定値
- new_branch_nameはリモートに反映させたいブランチ名称
詰まりそうな点
- リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される
case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!
手順
$ git fetch origin
- [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
- original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), done. From https://github.com/自分のリポジトリ * [new branch] new_branch -> origin/new_branch c5996a4..47d6cc0 original_branch_name -> origin/original_branch_name
$ git reset --hard origin/original_branch_name
git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称- fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
$ git checkout original_branch_nameで、reset後のブランチに移動する$ git clean -df .で余分なファイルを削除する
- ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
- ここまで実行することで、リモートブランチと全く同じ状態になる
詰まりそうな点
- fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説
続く