TWiki> Main Web>TWikiUsers>TakuyaKumaoka>KumaGitTopic (revision 2)EditAttachPDF
Kuma Main TWiki

よくコマンドを忘れてしまうので、みなさん便利なコマンドを載せてくださるとありがたいです。
git基本コマンド(このページはとても便利です)

主にALICEでこの内容が必要な方

trainを使う人が主にこの内容が必要になると思います。 ALICEの本体のフレームワークに自分のコードを組み込む時に必要になります。

流れ
1) 個人の環境下に本体のクローンをおきます。
2) 自分の書き換えたいコードを書き換えるなり、加えたいコードを適切な位置に加えます。
3) その部分を本体にマージします。
4) 次の日ぐらい(22:00 JSTくらい)に、本体がbuildされます。
5) 全員が書き換えたコードを使えるようになります(lxplusの環境下のAliPhysics ?下に自分のコードがあるはずです).
6) train(wagon)にてコードのpassを指定すればそのコードが走ります。

具体的なコマンドや必要な操作は次に示します。

aliceのgitの使い方について

(2020/10/30 熊岡 ; 忘れている部分や抜けている部分が多くあると思いますので気付いた方は, 適宜修正してくださるとありがたいです。)

あくまでここは ALICE git pageの補填するページです。

1) gitのアカウントを作ってください (https://alisw.cern.ch/alice-github/login ).
(gitアプリはgithubが推奨されているようですがgitlabでもできます。既にgitlabが使い慣れていればこちらでも大丈夫です.)

2) 自分のアカウントで本体リポジトリのリモートコピーを作成(フォーク)します(https://github.com/alisw/AliPhysics/fork ).
このコピーは元のリポジトリにリンクされており、「プルリクエスト」の形式で変更を提案できます。

どちらでも大丈夫だと思いますが, コマンド操作はalidocの外で自分は行っています.

3) 個人の環境からsshで本体にアクセスできるようにします.
keyの生成はalidockの外でも中でも問題ないですが, 本体に投げるときはkeyを作ったところで投げてください. keyはいくつあっても問題ないので内外両方でkeyを持っていても問題ありません.

ssh-keygen -C "login@foobar.com" -t rsa

これにより、

~/.ssh/id_rsa.pub

ができているはずです。このファイル(id_rsa.pub)をエディタ(emacsなりvimなり)で開き, その中身「ssh-rsa hogehoge」と書かれている部分をssh-rsaも含めてコピーし, 自分のブラウザのsshのkey設定ページ( Github, Gitlab)のKeyの部分に指示通り貼り付けてください.
パスワードを聞かれますが無視してenter enter enterでも問題なかったと思います. (おそらく"ページ"を押すと設定ページに飛べるはずですが、基本的には自分のgitページに行き, プロフィールアイコン(多分右上らへんにあるはず)を押すとなんか出てくるので、Settingsを押し、 右側の欄にあるSSH and GPG keysを押します。その後New SSH keyを押すと指定のページに行けるはずです。) 一応適当なkeyの名前をつけ, Add keyを押してください.

4) 個人の環境のセットアップ

git config --global user.name "<Firstname> <Lastname>"
git config --global user.email <your-email-address@cern.ch> 
git config --global user.github <your-github-username> 

FirstとLastの間には、スペースを入れてください。 三角括弧は入りません.

5) ようやくコードを本体に投げ始めます.
以下のcdはalidock外でやる場合は違う位置にあります. 編集したいAliPhysics ?の位置に言ってくれればオッケーです。
またyour-github-username(2箇所)は、上の3つ目で設定したuser nameを使用してください。

cd ~/alice/AliPhysics
git remote add <your-github-username> git@github.com:<your-github-username>/AliPhysics.git

編集したcodeをaddします. space区切りでいっぺんにファイルをaddできます.

git add <file1> <file2> <file3>
git commit -a -m "投げた理由等(ex: hogeHoge initial commit)"
git pull --rebase
git push <your-github-username>

以下の操作は ALICE git pageのCreate a pull requestを見た方がわかりやすいかもです。

6) 自分のブラウザページ(https://github.com/ <your-github-username>/AliPhysics ?)に行きpull requestをします.
New pull requestのボタンをなんとか探し出し押してください。 次のCreate pull requestを押して完了です。メールが来るかもです。 ひとまずテストのコンパイルが勝手にされて、operatorがOK出せば次の日に本体がbuildされます。

7) お疲れ様です. これでtrainであなたのコードが走らせられます.

参考ページ

(ALICE git page) https://alisw.github.io/git-tutorial/#updating-your-fork-with-changes-from-the-master
多分gitは一般的な物なのでエラーをはっつければ何かしら解決策が見つかると思います。

そもそもgitとは

セクション名を大きく書いたものの、書いた本人も語れるほどgitを分かっていませんが、 gitを全く知らなかった方に最低限知っておいて欲しい内容を記します。 (詳しくは以下の参考ページを見てください)
git自体は企業等でも当たり前のように使われている一般的なアプリケーションです。 大きなシステムを複数人でスムーズに管理するための分散型バージョン管理システムです。 そのため我々のような大きなコラボレーションのシステム開発に向いています。 個人的に使う際にも”バージョン管理”というのが非常に便利で、 差分を記録していくため、定期的にpushしておけば問題が起きた時にその前に簡単に戻れ、 何が問題だったのかも明確にわかります。 以下の画像のように書き足した部分は緑色、削った部分は赤色になります。 また各箇所にコメントを入れることもできます。この機能は複数人で編集する際には便利になるでしょう。

??????????? 2020-11-03 1.09.28.png

またある種のバックアップにもなるので開発コードは定期的に自分のレポジトリに挙げておくと後々便利でしょう。 ただ気をつけて欲しいのが、差分が全て記録されていくため編集中のpdf(もう書き換えないpdfはOK, むしろReadMe等がpdfとして保管されているのは最高です)や、 とても重いファイル(root file等)はgitに上げない方がいいでしょう。

参考ページ

よく使うgitコマンド

git add <file1> <file2> <file3>
git commit -a -m "投げた理由等(ex: hogeHoge initial commit)"
git pull --rebase
git push <your-github-username>
git fetch -p //最新情報にlocalを更新
  • gitの状況確認. なんかrebaseができないときは確認してみるといい
    git status
  • untracked fileを削除する
    git clean -n git clean -f
  • You are not currently on a branch.のエラー
    git checkout master
  • 間違えて載せちゃったやつを消せる
    git rm -rf <file1> <file2> <file3>

-- TakuyaKumaoka - 2021-07-20

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2021-07-28 - TakuyaKumaoka
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback