Gitとはなんぞや?
当方は基本的に素人です。
なにか誤解を招く表現があればコメントや編集リクエストをいただければありがたく思います。
Gitはプログラムのコードを「いつ誰がどのような変更を行ったのか」を管理しておくバージョン管理ツールらしいです。
ソースコードなどをアップロードすることができます。
リポジトリはgitでファイルを管理する場所のようです。
サーバーのことをリモート、個人の作業端末をローカルといい、gitとgithubは別物。githubはリモートサーバの中身をブラウザで見るためのツールらしいです。
youtubeを見ながらgitを使っていきたいと思います。
この動画ではgitのインストールなどは解説されておらず、最初のgit clone、git addコマンドなどを実行するのに数時間かかりました。あくまでgitの使い方講座でした。これは僕が悪い。
git pushも他のサイトを参考にしてやりました。
gitの理解には以下のサイトが役立ちました。
次の項目でコマンドが使えず四苦八苦しておりますがコマンドを使わず操作することも可能です。
SourceTree、TortoiseGitなるものがあるようです。
git cloneができない!
とりあえずgithubに登録しました。
まずはリポジトリを作成して、
わけもわからずSSHを選択し、その右にあるものをコピーしコマンドプロンプトで`git clone ....gitを実行しますができません。
Gitインストール
まずはGitなるものインストールしなければgitコマンドが使えないということに気づきました。
ということで以下のサイトを参照してここからGitをインストールしたところ、コマンドプロンプトでgitコマンドが反応しました。
インストール時にデフォルトのエディターにはVSCodeを選択しました。
WARNING!が出ています。怖い。
Command Promptを選択しました。
この2項目以外はデフォルトのままだったはずです。
以下のサイトを見ながらインストールしました。
よくわかりませんがユーザーネームとメールアドレスを設定しておきます。このメアド、ユーザネームはクローンすれば誰でも閲覧できるので注意が必要かと思います。
git config --global user.name "UserName"
git config --global user.email "user.email@email.com"
git config --list
で確認できます。
また、git -v
でバージョンが確認できます。
インストールできていればバージョンが表示されるはずです。
最初に戻ってgit cloneが反応はするのですが、
Please make sure you have the correct access rights
privateでリポジトリを作成したからか、実行できませんでした。
トークンを取得するというサイトを見ていましたがなかなかできなかったのでパスワードを入力する方針に切り替えました。
暗号鍵なるものもあるのかよくわかりませんでした。
以下のコードを入力するとパスワードの入力を求められ、ログインするとクローンすることができました。
git clone https://[リポジトリの所有アカウント名]@github.com/[リポジトリの所有アカウント]/[リポジトリ名].git
このサイトを参照しました。
SSHではなくhttpsを選択すると、リポジトリを開いた画面からコピペでいけるようです。
git clone https://github.com/アカウント名/リポジトリ名.git
リポジトリのurlをコピペするだけでもいけるようです。
Gitの基本的な使い方
まず、
- VSCodeなどでフォルダを開いておく(ターミナルでリポジトリをクローンしたい場所に移動しておく)
- リポジトリの
git clone
- 選択したエディタ、ターミナルでcloneしたフォルダに移動(VSCodeならCtrl+K→Ctrl+Oでフォルダを開く)
C:\Desktop\git\リポジトリ名>
のようにターミナルでgitコマンドを使いたいフォルダに移動しておけということです。
VSCode(Windows)のデフォルトのターミナルはpowershellになっていたかと思います。
VSCodeならフォルダを開くことで移動できます。
これでgit status
で現在の状態を確認できるようになりました。
少し下に書かれているgit initを使って作成するほうがよいかもしれません。
- はなくてもターミナルが開いているフォルダの位置にクローンされます。
ターミナルでのディレクトリを移動したいときのコマンドなどは調べてください。コマンドプロンプトならcd [フォルダのアドレス]などで一発で移動できます。
cd 子フォルダ名
指定した子フォルダに移動
cd..
親フォルダに移動
git add [ファイル名]
で開いているフォルダの中のファイルをステージング(ファイルがgitの管理下にある状態)することができます。
エラーは以下のサイトを参照して対処しました。
git initが必要と勘違いしておりましたが、cloneした場合はなくてもできるようです。initをつかってやることもできるみたいです。
init使ってやるならこちらも参照
最初はcloneでよさそうですが、pushするときにmasterブランチを作成できなかったりするのでinitで作成したほうがよいかもしれません。
当方、素人なのでgit使ったことある人が見ていればアドバイスがほしいです。
git initまで実行したらそのまま読み進めてもらっても大丈夫です。
- github上でリポジトリの作成
- 作業ディレクトリの作成(しなくてもよい)
- 作業ディレクトリにターミナル上で移動
-
git init
.gitが作成される(隠しフォルダ) -
git remote add origin リポジトリのurl
(https://github.com/アカウント名/リポジトリ名) -
git add [ファイル名]
で指定ファイルをステージング、またはgit add .
で作業ディレクトリ内の全てのファイルをgitの管理下におく -
git commit -m "編集履歴などを書く"
編集履歴などをセーブ -
git push -u origin master
ローカルからリモートへアップロード
コマンドの説明などはこれから書いていきます。
また、作業ディレクトリ内にファイルがないとおそらくpushできないと思います。
4.を7.の前に持ってきても可能と思われます。
参照:
以下のサイトは編集中に貼ったurlなのであまり気にしなくてよいです。
git add file1
でfile1というファイルをステージングしてgit status
でみるとファイル名が緑色になりました。赤色のファイルはステージングされていないようです。
git add .
ですべてのファイルをステージング状態にすることが可能。
次に保存が必要になるようです。
保存にはgit commit
コマンドを使います。
git commitというのはステージングエリアからローカルリポジトリへファイルを上げるようです。
git commit -m "コミットメッセージ"
/* コミットメッセージにどのような編集内容なのかを書いておくと良いらしいです。 */
gitの基本的なコマンドはこちらを参考にしました。
次にfile1を編集し、git status
で確認すると
赤色で表示されました。
編集を保存するためにgit add .
でコミット待ちの状態になります。ステージングされましたが、まだ保存されていないのでgit commit -m "二回目のコミットです"
を実行することで保存します。
ここでgit log
コマンドを打つことで誰が、何時何分にコミットしたかという記録と-mのあとに書いたメッセージが表示されます。
ここまでのコミットはリモート側にはアップロードされておらずあくまでローカルに保存されているようです。つまりgithubで見ることもできません。
はじめてのgit push
git push
コマンドでリモートにアップロードすることが可能です。
2回目以降はgit pushのみでよいらしいですが、はじめはgithubからリポジトリを開いてhttps://github.com/アカウント名/リポジトリ名.git
をコピーしてきてください。Alt+Dでurlが選択できるのでurlをコピーしても構いません。
そしてこのコマンドを実行。
git remote add origin https://github.com/.../....git
次に
git push -u origin master
を実行する。 branchは-uがなくてもよいかも。
二回目以降はgit push
のみでいけるようです。
ブランチが複数ある場合はgit push origin develop
などのように指定して行うとよいかもしれません。
参考として
git pushなのですが、最初にGitHubに上げる際にはこのままではうまくいきません。
リモートのリポジトリはどこやねんと言われてしまいました。
一番最初にリモートにアップロードする場合はきちんと宛先を指定しましょうね、という話です。
ではGithub上で作成したリモートリポジトリのURLをコピーしてきて先ほどのコマンドの続きに貼り付けます。
この際、リモートリポジトリの名前をつける必要があるのですが、この名前は一般的に"origin"という名前を使用します。コマンドは以下のようになります。
$ git remote add origin https://github.com/Toshimatu/pictgram.git
これでセッティングは終了。これでpushする準備ができたので改めてpushをしましょう。
なお、最初のpushは以下のように指定します。2回目以降は$ git pushのみでpush可能になります。
$ git push -u origin master
これにてGitHubにファイルの登録ができました!
実際にGitHubに登録されているか確認して、作成したリポジトリにコードが反映されていれば終了です。
引用:https://qiita.com/A__Matsuda/items/f71a935612a55d6e674e
githubでリポジトリを開き、画像の部分をクリックするとコミットの履歴が閲覧できます。
さらにcommitメッセージをクリックするとソースコードの編集履歴を見ることができます。
コミットはゲームのセーブポイントのようなもので、きりの良いところでセーブすることです。
一人で使う場合、pullコマンドの出番はないかもしれませんが
git pull origin
最新のリポジトリ情報をダウンロード、他の作業者のコミットを更新したりできる。
ブランチ
元祖の変更履歴をmasterと呼ぶ。
masterから枝分かれすることをブランチと呼ぶ。
master側の歴史から枝分かれさせてブランチで開発する。ブランチはmasterにマージするまではmaster側に影響を与えない。ブランチがバグっていてもmasterには影響しない。
git checkout
ブランチを切り替えるコマンド
git checkout -b develop master
masterからdevelopという名前のブランチを切る
git branch
ブランチの一覧を見る、緑色が現在のブランチ
git checkout master
でmasterに切り替えられる
git checkout develop
でdevelopに切り替える
git push origin develop
developにpush
git pull origin
他者がdevelopをpushしたときに自分のローカルに持ってくる。
developの変更内容をチェックし、masterにマージするにはマージ先のブランチに移動git checkout master
masterに対してdevelopブランチをマージする場合は
git merge develop
と入力する。
マージは合併、融合などの意味がある。
その後、masterにマージした内容をリモートにpullします。
git push origin master
pullリクエストなどもあるがこの記事では割愛する。
ちなみに割愛とは惜しいと思うものを省略したりするという意味のようです。惜しくないものは割愛ではない?
fetchというのはリモートの状態をローカルにダウンロードしてくること。originはリモートサーバーのことのようです。
git fetch origin
git merge origin/develop
この2つのコマンドを1つにまとめたのが
git pull develop
git resetとstash
git reset --hard HEAD
このコマンドで今編集中の内容をすべてふきとばして、最終コミットの状態にリセットする。
git stash
ブランチを間違えたりしたときに、ブランチを切り替えるとコミットしてない変更があるのでエラーが出ます。
stashコマンドで一旦変更を取り消せます。
本来のブランチへ移動してから
git stash pop
でstashでコミットしてない内容をもってくる事ができる。
gitコマンドまとめ
git config --global user.name "XXXX"
git config --global user.email "XXXX@hogehoge.com"
git clone
新規にリポジトリをローカルにコピー
git init
リポジトリを新規作成、.gitというディレクトリが作成される。クローンした場合は必要ない。
git status
ファイルの編集を行うと編集中のファイルが表示される
git add [ファイル名]
gitにステージング、statusが緑色になる。git add .
すべてのファイルをステージング。
git commit -m "コミットメッセージ"
gitに対してのセーブ
git push
ローカルの作業内容をリモートにアップロード
git log
commit履歴を表示
git pull origin
最新のリポジトリ情報をダウンロード、他の作業者のコミットを更新したりできる。
git checkout -b develop master
masterからdevelopという名前のブランチを切る
git branch
ブランチの一覧を見る
merge、reset、stashは少し上にスクロールしてください。
<> Codeからzipファイルをダウンロードすることが可能です。
参照サイト
特に参考になったサイト。
youtubeを見ながらわからないこと、うまくできないことは他のサイトを参照しました。
git使い方
その他