Githubは自分が書いたコードを手軽に共有したり、集団で共同編集したりすることができるアプリケーションです。今回はGithubにコードをあげたり、変更内容を登録したりするコードについて紹介します。
Gitの使い方
Git Bashでもcommand promptでもpowershellでも同じ。
まずはGitをインストールしてGit Bashを起動する。
$ git --version
versionが表示されたらインストールは完了している。次に、誰が変更したかを履歴するように、Gitの初期設定を行う。
$ git config --global user.name ユーザ名
$ git config --global user.email メールアドレス
$ git config --list
これでconfigにユーザ名とメールアドレスを登録したことを確認できた。
次にGitHubアカウントを作成する。その後Github上で「create Repository」をクリックしてリモートリポジトリを作成する。repository名は自由に入力する。publicは他のユーザーが見れる。privateは非公開。この画面で「create repository」がクリックできない状態にあるときは、違うブラウザを使うと良い。例:chromeから押せなかったのでEdgeを使ってgithubにログインする。
githubの下にpushtestフォルダを作って、その中にgitファイルを作成する。
cd github
mkdir pushtest
cd pushtest
git init
index.htmlをpushtestフォルダに作る。
git add index.html
git commit -m "[Add] index"
git log
上記のコードでindex.htmlがローカルレポジトリに追加される。logで変更履歴を確認できる。
git remote add origin https://github.com/ユーザー名/レポジトリ名.git
git push origin master
http以下はgithubでリモートリポジトリを作った際に表示されるので、どこかにコピペしておく。gitにログインする。上記のコードで、ローカルレポジトリの変更が、github上のリモートレポジトリに反映される。上のコードでは、リモートリポジトリの情報がローカルレポジトリに紐づけられる。下のコードで、ローカルレポジトリの変更をリモートリポジトリに反映できる。
Gitでよく使うコード一覧
①git localに全てを追加するコード
git add .
基本は①を使うが、大抵の場合warning: CRLF will be replaced by LF in …と表示される。これは改行コードを変換するときに表示される警告で、Git側の環境設定を変更すれば表示されなくなるが、warning対象となっているファイルのうち一つでも個別でaddすれば、後はgit add .でまとめてlocalに追加できる。
②git localに個別で追加するコード
git add backend/../mc.go
③commitするときにメッセージを追加するコード
git commit -m "first commit"
③localの変更内容をremote側に伝達する
git push origin master
Githubをチームで使う方法
すでに存在するリモートリポジトリからソースコードを取得する。空のディレクトリを作り、そのディレクトリにて以下のコードを実行する。リモートからリポジトリを取得する作業をcloneという。
git clone https://github.com/ユーザ名/[作成したリポジトリ].git
並行して開発する仕組としてgitにはbranchという機能がある。branchで枝分かれさせて、そのそれぞれで変更履歴を作っていく。まず、トップ階層のmasterからfeature1というブランチを作成する。次に、feature1ブランチ上で作業するためにcheckoutを入力してブランチを移動する。ここでgit branchを実行すると、ローカルレポジトリ上にあるmasterとfeature1というブランチが表示される。
git branch feature1
git checkout feature2
git branch
feature1でlogin.htmlを作成したとする。作成したlogin.htmlをfeature1ブランチにコミットする。
git add login.html
git commit -m "[Add] login"
次に、github上のリモートリポジトリにfeature1ブランチの内容を反映する。
git push origin feature1
これで、giyhub上にはmasterとfeature1のブランチが確認できる。feature1にはlogin.htmlが追加されており、masterには追加されていない。最終的には、masterにその他ブランチの変更内容を取り込んで統合(merge)する。mergeする際には、github上でプルリクエスト機能を使ってコードレビューを行うことができる。merge pull requestをクリックしたタイミングで、feature1の内容がmasterにも反映される。
次に、リモートリポジトリのmasterでmergeされた情報を、ローカルレポジトリ上のmasterに反映する。この操作をプルといい、リモートリポジトリから変更内容を取得する。まずブランチをmasterに切り替え、git pullでリモートリポジトリのmasterから最新の変更内容を取得する。
git checkout master
git pull
ls
git log
Githubでリモートリポジトリを作った後の操作方法
①ファイルの変更をローカルレポジトリに追加し、ローカルレポジトリの変更をリモートリポジトリに追加する方法。gitファイルを作成したフォルダにて以下のコードを実行する。上のgit remote addで既にリモートリポジトリとローカルレポジトリは紐づけている。
git add index2.html
git commit -m "[Add] index"
git push origin master
github上のリモートリポジトリを見ると、repositoryにある[Add] indexフォルダにindex2.htmlが追加されていることが確認できる。
②次に.gitignoreを設定する。github/pushtestにnode_modulesフォルダを追加して、その中にtest.htmlを追加してみる。このnode_modulesをgitに追加しない設定にする。尚、一度でもgithubのリモートリポジトリにuploadしたものは.gitignoreにそのまま追加しても反映されない。
cd github/pushtest
git status
これでnode_modulesがuntracked fileとして表示される。untracked fileはgitにuploadされる予定のファイルであるということ。なので、.gitignoreファイルを作って、その中にnode_modulesと打ち込む。その後git statusを再度実行すると、.gitignoreと表示される。
まとめると、.gitignoreファイルを作って、入れたくないフォルダやファイルをベタ打ちする手軽な操作で、gitにuploadしないことを設定できる。git statusでこの操作が反映されたか確認できる。
Gitでremote先を変更する方法
git remote -v
git remote set-url origin [new url]
一行目で「今どこのremote repositoryにいるか」が分かる。
二行目でremote先を変更できる。念のためもう一回一行目で変更できたか確認したら完璧です。
git remoteを削除する方法
git remote rm origin
git remote -v
.gitignoreの書き方
# ディレクトリを追加するとき
/src/pages/components/
# ファイルを追加する時
/src/pages/app.tsx
# node_modulesを追加する時
/node_modules
変更した内容をローカルレポジトリに反映し、それをリモートリポジトリに反映する方法
git pull ←これを入れないとwarningやerrorが出る。
git add {filename}
git commit -m "Commit message"
git push origin master
.gitを含むディレクトリ(git init)の中にあるファイルを変更した場合、visual studioでは”M”と黄色マークがつく。このMマークが全部消えたら、変更内容がリモートリポジトリに反映された証。念のためリモートリポジトリの変更履歴(最終更新日)を確認しておく。
githubにてprivateとpublicを切り替える方法
Settings → Danger Zone → Change Visibility
コメント