最終更新日:2023/06/06
コレは何?/What is this?
githubでARCS6 を同期するための手順。
チームワークを発揮するためには必須。
朝研究室に来たらまずは pull、帰る前に push しよう! (こまめな同期がコンフリクトを防ぐ)
手順書の読み方
灰色背景
はコマンドを示し,
puttyなどでwindows端末から接続し、コマンドか編集内容をCtrl+Cでコピー、
puttyの画面上にフォーカスを移して右クリックでペースト、そうするとラクに作業ができます。
★ GitHubアカウントの作成とトークンの生成
1. GitHubアカウントを作成
https://github.com/ で普通にアカウントを作成する。
2.「Personal Access Token」を生成する
githubの設定ページ を開いて,
下記の画面で「Personal Access Token」を生成する。
repoからgistまでを全てチェックして、期限を3ヶ月に設定して「Generate token」を押す。
(詳細については github トークン でググれば丁寧な解説ページが出てくるので、そこを見ると良い)
最終的に、ghp_から始まる文字列が得られるので、どこかにメモっておく。
★ 最初期導入編:全く新しい別端末への導入
1. gitをインストール
RedHat系なら,
dnf install git
Ubuntu系なら,
apt install git
としてインストールする。
(通常はデフォルトでgitが入ってることが多い)
2. 自分用ディレクトリを作成
cd /
mkdir expsrc
cd expsrc
mkdir yoko ←自分用ディレクトリの名前
上記のファイルパスはあくまでも一例で、好きなように設定してオーケー。
★ 導入編I:ARCS6公開リポジトリに新しい端末からアクセスする場合
1. gitの初期設定
cd /expsrc/yoko ←既存の自分用ディレクトリ(例)
mkdir ARCS6
cd ARCS6
git init
git config --global user.name 自分のユーザ名
git config --global user.email 自分のメールアドレス
git remote add origin https://github.com/Sidewarehouse/ARCS6.git
2. gitの初期pull
git pull origin main
3. ブランチ名を変更
git branch -m master main
4. 自分用ディレクトリ(例:/expsrc/yoko/ARCS6)にファイル一式が入っていることを確認
★ 導入編II:非公開ロボットリポジトリに新しい端末からアクセスする場合
1. まず、導入編Iを実行してから、その後に下記をすること
2. 非公開リポジトリのコラボレータになる
3. gitの初期設定
cd /expsrc/yoko/ARCS6/robot/
mkdir UniDisc ←既存の非公開ロボット名(例)
cd UniDisc
git init
git remote add origin https://github.com/Sidewarehouse/ARCS6-UniDisc.git
上記は「UniDisc」という名前の既にある非公開ロボットのコードにアクセスする例。
4. gitの初期pull
git pull origin main
ここでユーザ名とパスを聞かれるはず。パスは先述のトークンをコピペで入れる。
(putty画面上で右クリックするとペーストできる。ただし画面上には表示されない)
5. ブランチ名を変更
git branch -m master main
6. ファイル一式が入っていることを確認
cd /expsrc/yoko/ARCS6/robot/UniDisc
ls
★ 運用編I:ロボット制御系のコーディングをする場合
1. 目的のロボットディレクトリまで移動
cd /expsrc/yoko/ARCS6/robot/UniDisc
2. 他の誰かが変更しているかもしれないので、まずはプル
git pull origin main
Username for 'https://github.com': 自分のユーザ名
Password for 'https://sidewarehouse@github.com': ghp_から始まる自分の2要素認証トークン
3. コーディング開始~~~コーディング終了
cd /expsrc/yoko/ARCS6/robot/UniDisc/CurrentCtrl ←電流制御の例
4. クリーンにしておく
cd /expsrc/yoko/ARCS6/robot/UniDisc/CurrentCtrl
make clean
5. 追加・編集したファイルをgitに認識させる
cd /expsrc/yoko/ARCS6/robot/UniDisc/CurrentCtrl
git add .
git status
ココで下記のようなファイル一覧(例)が表示される。
Changes to be committed:
(use "git restore --staged ..." to unstage)
new file: ConstParams.cc
new file: ConstParams.hh
new file: ControlFunctions.cc
new file: InterfaceFunctions.hh
new file: OfflineCalculations.cc
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: ../../../lib/RingBuffer.hh
Untracked files:
(use "git add ..." to include in what will be committed)
../../../lib/MovingDifferentiator.cc
../../../lib/MovingDifferentiator.hh
緑 = 追加・編集され、尚且つgitに認識設定されたファイル
赤 = 追加・編集されたものの、gitに認識設定されていないファイル
6. ↑の赤のファイルを認識設定したければ
git add <ファイル名>
git status
赤のファイルが緑になっていればオーケー。
7. コミット&プッシュ
git commit -m "電流制御器を実装" ←簡単なコメントを書いておく
git push -u origin main
Username for 'https://github.com': <自分のユーザ名>
Password for 'https://自分のユーザ名@github.com': <ghp_から始まる自分の2要素認証トークン>
8. ログ確認
git log
一番上の右の方に「(HEAD -> main , origin/main )」とあれば、
ローカルリポジトリとリモートリポジトリが同期されているのでオーケー。
運用編II:ARCS6基本システム自体のコーディングをする場合(libも含む)
1. ARCS6ディレクトリまで移動
cd /expsrc/yoko/ARCS6
2. 他の誰かが変更しているかもしれないので、まずはプル
git pull origin main
Username for 'https://github.com': 自分のユーザ名
Password for 'https://sidewarehouse@github.com': ghp_から始まる自分の2要素認証トークン
3. コーディング開始~~~コーディング終了
cd /expsrc/yoko/ARCS6/robot/general/BaseCtrl ←コードベースの例
4. クリーンにしておく
cd /expsrc/yoko/ARCS6/robot/general/BaseCtrl
make clean
5. 非公開のため無視するファイルを確認
git status --ignored
無視する非公開ファイルに漏れがないかチェック
6. 追加・編集したファイルをgitに認識させる
cd /expsrc/yoko/ARCS6
git add .
git status
ココでファイル一覧が表示される。
非公開ファイルが含まれていないかチェック
7. コミット&プッシュ
git commit -m "バグをFIX" ←簡単なコメントを書いておく
git push -u origin main
Username for 'https://github.com': 自分のユーザ名
Password for 'https://sidewarehouse@github.com': ghp_から始まる自分の2要素認証トークン
8. ログ確認
git log
一番上の右の方に「(HEAD -> main , origin/main )」とあればオーケー。
★ その他よく使うコマンド
A. 直前のコミットを取り消す
git reset --hard HEAD^
git push -f origin main
B. ローカルのmainをリモートのmainに強制的に合わせる
git fetch origin main
git reset --hard origin/main
C. マージポリシーの変更
git config pull.rebase false
D. ローカルのブランチ名を変更
git branch -m <古いブランチ名> <新しいブランチ名>
★ WSL上で動かすときの場合の問題解決
Windowsから「\\wsl$」でアクセスして、ARCS6のコードを編集しようとすると、
permission deniedで編集できない。
1. そこで、
vi /etc/wsl.conf
で下記を追記して保存
[user]
default=root
2.下記を2回打ってでWSLを終了
exit
3. Windows側のコマンドプロンプト(cmd.exe)で、
wsl --terminate Ubuntu-20.04
と打ってWSLを完全停止
4. その後、WSLを再度起動すると、シェルのプロンプトが、
ユーザ名@ホスト名だったのが、root@ホスト名に変わってることを確認
5. そのあとに、Windowsから「\\wsl$」でアクセスすると、正常に編集できるようになる
SWL - The Side Warehouse Laboratory, 横倉研究室 - 技術倉庫
Copyright(C), The Side Warehouse Laboratory, All rights reserved.