Help us understand the problem. What is going on with this article?

非情報系でもわかったほうが良いGit

More than 1 year has passed since last update.

はじめに

私は情報系まがいのことをしているが基本的には非情報系である1
しかしながら,コードを書き,データを扱って暮らしているため,バージョン管理とか言うヤツとは常に戦ってきた.
これまでは

  • 1つのファイルをどんどん書き足し(書き換え)ながら開発する
  • 大規模な変更を入れる場合はディレクトリごとコピーして名前を変え,書き直す

とくにこの2番目がクソと言わざるを得ないだろう.
デスクトップには同じような名前のフォルダが並んでおり,それらはファイル名末尾の日付と,私の記憶でしか判別できないのだ.
あとバックアップが取れていないので,ワークステーションが学会前にお亡くなりになったときはマジで死ぬかと思った.

Twitterでそんなことをつぶやいたらgitをつかいなさーい!と言われたので,gitを使ってみたのである.
その時の記録と,基本的な使い方くらいをまとめておこうと思う2

準備

まずgitというのはバージョン管理するソフトウェアの名称(?)で,GitHubというのはバージョン管理する場所を貸してくれるサービスであるらしいことがわかった.

研究内容をオンラインの公開リポジトリに置いておくわけにはいかないので,privateリポジトリを作れるようにGitHubのアカウントをeducationにした.
ここから「Join education」を押してメールアドレスで認証した.

その他の作業は,基本的にこのサイトに書いてあるとおりにやった.
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説 - エンジニアHub|若手Webエンジニアのキャリアを考える!
相違点は,GitHubのアカウントを取得するところをすっとばして,リポジトリの作成をprivateにしたことくらい.
また,sshは通ったがgit cloneができなかったのでググったところ,ssh-agentとかいうのを設定しなきゃいけなかった.
参考:Githubに接続できない時の対処法

追記:SSH agentくんは再起動のたびにパスフレーズを忘れてしまうらしい.
ssh agentをパスフレーズ省略に応用する方法まとめ

 基本操作

gitは,以下の手順で操作する(と,私は思っている).

  1. 手元でファイルを作成・編集する
  2. どのファイルを変更履歴に反映するかを選ぶ(add)
  3. ローカルの変更履歴に反映する(commit)
  4. ローカルの変更履歴をGitHub上のリポジトリに反映する(push)

1人で使ってるぶんには「ぷる」とかいうのはなさそうなのでよく知らない.

参考:Qiitaではこの記事がかなり良さそう→【Git】基本コマンド

git add

特定のファイルだけ変更履歴に反映するときは

git add [ファイル名]

全部やるときは

git add *

git commit

git commit -a -m "コメント"

コメントはあとから履歴を見たときに表示されるっぽいからなんとなくでも書いといたほうが良さそうにゃもね.

git push

git push [リモートリポジトリ名] [ローカルのbranch名]:[リモートのbranch名]

この記事のようにリモートリポジトリからcloneして作ったローカルリポジトリの場合,リモートリポジトリ名をoriginとしてよいらしい.
あとローカルとリモートでbranch名が同じ場合は入力は1回でよく,現在のbranchをpushする場合はまるごと省略も可能っぽい,よって

git push

でもできてしまうにゃもね.

 おしまい

これで,手元で作成したファイルの変更履歴をGitHub上に反映することができた.
今の所,ログを確認したり巻き戻したりという必要に迫られていないのでそのような操作は知らないが,必要になったらまたググるし,必要だと思ったらここに書くと思う.

参入障壁はそれなりに感じたけど,やはりファイルはスッキリ管理したいので,今後はgitを使っていきたいと思います.


  1. そろそろ電気系を名乗るのも無理が出てきたと言わざるを得ない. 

  2. ぶっちゃけ使い方とかはググればいくらでも出てくる. 

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away