akatak’s blog

プログラム初心者の50代ビジネスマンがセカンドキャリアを目指して働きながらPythonを中心に独学しています。自らの覚え書きや感じたことなどを脈絡もなく書き連ねるブログです。

Gitの覚え書き

GitHubにJupyter Notebookを簡単にアップロードできるかと思っていたら、世の中そう簡単にはいかないものですね。 Gitというバージョン管理アプリケーションを導入しないといけないことに加えて、操作や概念が分かりにくく、非常に取っ付きにくい。 私は、まずは、Udemyの無料講座 Udemy:はじめてのGitとGitHubにお世話になりました。その他、 概念については、こちらが非常に良くまとまっているかと思いますので、参考にしてください。

サルでも分かるGit入門

以下に、Gitでよく使う操作について、自分の覚え書きとして簡単にまとめました。

Gitリポジトリの新規設定

$ git init

この「git init」コマンドはGitリポジトリを新たに設定するコマンドです。カレントディレクトリをGitリポジトリに変換します。

ファイルの作成/変更/削除をGitのインデックスに追加

$ git add filename.txt

Gitでは、Gitの管理下に置かれた、みなさんが実際に作業をしているディレクトリのことを ワークツリーと呼びます。

そして、Gitではリポジトリとワークツリーの間にはインデックスというものが存在しています。インデックスとは、リポジトリにコミットする準備をするための場所のことです。
サルでもわかるGit入門

このgit addコマンドは、作成/変更/削除したファイルを、コミットする前にこのインデックスに登録するものです。

変更結果をローカルリポジトリにコミット

$ git commit -m "add new file"

次に、git commitコマンドを用いてインデックスに追加されたファイルをコミットします。 コミットとは、ファイルやディレクトリの追加や変更をリポジトリに記録する操作のことです。

ファイルの状況を確認

$ git status

このコマンドにより、ワークツリーやインデックスの状態について表示することができます。

リモートリポジトリの追加/削除

$ git remote add origin https://github.com//repositoryname.git

リモートリポジトリの追加は、上記のように追加したいリポジトリを指定し、コマンドを実行するだけです。 既に、リモートリポジトリを追加している場合には、fatal: remote origin already exists.とTerminalに表示されます。

$ git remote rm origin

逆にこのコマンドを入力すれば、リモートリポジトリを削除できます。ただし、ローカルリポジトリディレクトリを既に削除してしまっている場合は、GitHubのリモートリポジトリのSettingsタブの一番下のDanger ZoneにDelete this repositoryボタンがあるので、そのボタンを押すことで削除できます。

コミットした変更をプッシュしてリモートリポジトリに反映

$ git push origin master

このコマンドにより、ローカルリポジトリの変更を、GitHub上にあるリモートリポジトリに反映させることができます。その歳に、GitHubのユーザ名とパスワードを尋ねられますので入力してください。

ユーザー名とメールアドレスについては予め以下のコマンドを実行しておくことができます。

$ git config --global user.name "username"
$ git config --global user.email useremail@email.com

ワークツリー/インデックスからファイルを削除

$ git rm [--cached] filename

このコマンドにより、ワークツリー及びインデックスからファイルを削除することができます。[]内に記載のcachedはオプションで、これをつけるとインデックスのみ削除し、ファイルは残すことができます。

ディレクトリ下のファイルをまとめて削除

$ git rm -r [--cached] directryname

ディレクトリ下のファイルをまと舞えて削除したい場合には、rオプションとともに、ディレクトリ名を指定すれば、ワークツリー及びインデックスから削除することができます。これもcachedオプションを付けることで、インデックスのみから削除することも可能です。

終わりに

参考になったでしょうか。今回の整理は以上ですが、今後も研究が必要かと思っていますので、随時更新していければと思っています。