Git~備忘録~
・Gitへpushする方法
#任意のフォルダへ移動
$ git init
$ git add <ファイルの指定>
$ git commit -m "コメント"
$ git status #ファイルが追加されているのか確認
$ git remote add origin <リポジトリのアドレス>
$ git push origin master
・Gitの勉強を最近したのでここでまとめていく。
#初期設定
$ git config --global user.name "githubに登録したユーザーネーム"
$ git config --global user.email <登録したメールアドレス>
#git を使用するエディタを設定する。今回はatom
$ git config --global core.editor "atom --wait"
・登録した内容の確認
$ git config user.name
$ git config user.email
$ git config core.editor
#一気に確認する場合は
$ git config --list
・gitの仕組み
gitはスナップショットとしてファイルを記録している。それは複数人での作業が容易になるため。またバージョンを記録していくとで以前の状態を戻すことができる。
スナップショットをローカルリポジトリにアップ→githubへアップ
ローカルは・ワークツリー・ステージ・リポジトリの三つに分かれている。
・ワークツリー…ファイルを変更する作業場
・ステージ…コミットをする変更を準備git addで追加
・リポジトリ…スナップショットを記録…git commit
・ローカルリポジトリを作成
#ローカルで #まずはリポジトリを作成したい場所に移動
$ cd <レポジトリを作成するフォルダ>
#レポジトリを新規に作成する 。
$ git init
# ls .gitでgit の中身を確認できる。objectにどんどん保存される。
・githubからリポジトリをコピーする
$ git clone <リポジトリの名前(https://.....)>
・変更をステージに追加する。
$ git add <ファイル名> #ワークツリーすべてステージに持っていきたいとき
$ git add .
・ローカルリポジトリに変更を加える
$ git commit
$ git commit -m "メッセージ内容"
$ git commit -v
・変更ファイルの確認
$ git status #赤色 →変更されたファイルでステージに追加されていないのを指す #緑 →ステージには追加されているけどコミットされずにローカルリポジトリにはない状態を表す。
On branch master
nothing to commit, working tree clean
これは変更すべきものがないよという意味
・どんな変更があったのかを確認する。
# git add する前の変更分
$ git diff
$ git diff <ファイル名>
# git add した後の変更分
$ git diff --staged
+になっているところが追記されているところを表している。
・変更履歴を確認する。
$ git log
#一行表示
$ git log --oneline
#ファイルの変更差分を表示する 。
$ git log -p <ファイル名>
#表示するコミット数を制限する 。
$ git log -n <コミット数>
・ファイル削除の記録する。
#元のファイルも消えてしまう 。
$ git rm <ファイル名 or ディレクトリ名>
#ファイルを残したいとき (git の記録のみ削除)
$ git rm --cached <ファイル名>
・元に戻したいとき!
#ファイルの変更を取り消す (ローカルのファイルが変更される)
$ git checkout -- <ファイル名>
$ git checkout -- <ディレクトリ名>
#すべての変更を取り消すとき
$ git checkout -- .
#ステージに追加した変更を取り出す (ローカルにあるファイルは変更されない)
$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>
#すべての変更を取り消す
$ git reset HEAD .
・コミットの修正
$ git commit --amend
・コミットをやりなおす
$ git rebase -i <コミットID>
$ git rebase -i HEAD~3 #直前の三つをやり直すことができる
#HEADは最新のコミットのことを表している 。
・ファイル名の変更を記録する。
$ git mv <昔のファイル><新しいファイル>
・git hubにプッシュする。
#git hubのリポジトリを追加 #git hubのリポジトリ(リモートリポジトリ)をoriginとしている。
$ git remote add origin <git hubのリポジトリのurl>
#リモートリポジトリへ送信する 。
$ git push <リモート名><ブランチ名>
$ git push origin master
#初回の時だけ -uオプションをつけておくと次から楽になる。
$ git push -u origin master
リモートリポジトリを変更したい場合
$ git remote set-url origin {new url}
・管理しないファイルをgit管理から外す
→gitignoreファイルに指定する。
・リモートを表示する
$ git remote
#対応するURLを表示
$ git remote -v
#より詳しく見る場合は
$ git remote show origin
・リモートから情報を取得する(fetchとpull)
$ git fetch <リモート名>
$ git fetch origin
フェッチを使用するとリモートリポジトリからローカルリポジトリに情報を落としてくることができる。しかしながら自分の手元のファイルには反映されない為注意が必要。もし反映させたいのであれば$ git merge を行うことで手元のファイルにも反映することができる。
#pullの場合はマージまでを行う 。
$ git pull <リモート名><ブランチ名>
$ git pull origin master
#pullリベース型
$ git pull --rebase <リモート名><ブランチ名>
#これを設定しておくとpullするときは毎回rebaseですることになる 。
$ git config --global pull.rebase true
・リモートの名前の変更
$ git remote rename <旧リモート名><新リモート名>
#削除
$ git remote rm <リモート名>
・ブランチに関して
ブランチは複数の機能を並行しながら開発するのを実現している。ブランチを分岐することによってほかの人が変更したものがあったとしても、自分自身に対しては影響を受けない。ブランチを切ることによって並行して作業を行うことができる。
#ブランチを新規に追加する
$ git branch <ブランチ名># 新しくブランチが作成させる
#ブランチの一覧を表示させる1
$ git branch
$ git branch -a #すべてのブランチを表示させる
「*」があるところに今自分自身がいる。
・ブランチを切り替える方法
$ git checkout <切り替えるブランチ名>
#ブランチを新規作成して切り替えるときは
$ git checkout -b <新ブランチ名>
・マージとは
マージとはほかの人の変更を自分のブランチに追加するもの。mergeをすることによって、ほかのブランチのものを自分のところに取り込むことができる。
$ git merge <ブランチ名>
$ git merge <リモート名/ブランチ名>
・コンフリクト
同じファイルを編集したものをマージした際にどちらのものを優先してマージすればいいのかが分からない。そのような状態のことをコンフリクトという。
mergeした後にコンフリクトが起きているのかどうかを確認したいときは、
$ git status でみる
・ブランチの変更・削除
#ブランチの変更
$ git branch -m <ブランチ名>#今いるブランチの名前を変更する。
#ブランチの削除
$ git branch -d <ブランチ名>
$ git branch -D <ブランチ名>#強制的に削除を行う。
・リベース
リベースはブランチの起点となるコミットを別のコミットに移動することができる。もっと言うと親のコミットを<ブランチ名>のところに変更することが出来る。
$ git rebase <ブランチ名>
プッシュした後に関してはマージを行ったほうがいい。
・タグの一覧の表示
# tagの一覧を見る
$ git tag
#tagを作成する 。
$ git tag -a <タグ名> -m "メッセージ"
・作業を一時避難する。
$ git stash
#git stashのリストを見る
$ git stash list
#最新の作業を復元する
$ git stash apply
$ git stash apply --index #ステージの状況も復元する
#一時避難した作業を削除する
$ git stash drop
この記事が気に入ったらサポートをしてみませんか?