Git
gitを使って、バージョン管理をする。
Gitクライアント
初期設定
git config --global user.name "<Your Name>"
git config --global user.email "<your.email@example.com>"
git config --global color.ui true
レポジトリクローン
クローン
レポジトリのクローン:ソースコードのダウンロード
git clone <レポジトリURL>
レポジトリクローン
既存のプロジェクトに貢献したいけれども、そのリポジトリにプッシュする権限がないという場合は、プロジェクトを「フォーク」できます。 「フォーク」するとは、GitHub があなた専用にそのプロジェクトのコピーを作るということです。あなた自身の名前空間に置かれるので、そこには自分でプッシュできます。
コミット履歴の確認
# リッチ表示
git log
# 一行ずつ表示
git log --oneline
ブランチ表示
git fetch
git branch -a
Git のリモートのブランチを確認する #Git - Qiita
ソースコードの変更
ブランチの切り替え
新しくブランチを作成して切り替える場合
git switch -c <new branch name>
ブランチを切り替える場合
git switch <branch name>
変更
エディターで、ソースコードの修正を行う。
状態確認
git status
変更内容の確認
git diff
ステージング
git add -A(Allの略)→ 全部追加(迷ったらこれ)git add -u(Updateの略)→ 変更・削除だけ(新規は除く)
補足(必要なときだけ):
git add .→ 今いるフォルダ配下だけ追加git add ファイル名→ 特定のファイルだけgit add -f(Forceの略)→ ignore無視(基本使わない)
変更のコミット
ステージング後に実施するのが基本。
git commit -m "message"→ メッセージ付きでコミット(基本)git commit -am "message"→ add + commitを一発(新規ファイルは除く)
変更を取り消し(コミットの前)
git checkout -f
変更のプッシュ
git push
プルリク
変更内容を取得してすぐに反映する
git pull
git push
# プリリク作成
add, commit取り消し
変更取り消し
git reset --soft(Softの略)→ commitだけ戻す(addは残る)git reset(=--mixed/ Mixedの略)→ addを外す(ファイルは残る)git reset --hard(Hardの略)→ 全部(コミット、ステージング、変更)消す
コミットの打ち直し
git revert <commit-id>
新規レポジトリ追加
新しいGitリポジトリの作成
git init
リモートリポジトリの管理
登録されているリモート一覧を表示
- 確認
git remote -v
- 追加
リモート(例:origin)を登録する
git remote add <名前> <URL>
# 例:
git remote add origin https://github.com/user/repo.git
- 削除
指定したリモートを削除する
git remote remove <名前>
#例:
git remote remove origin
その他
-
リモートから変更取得
git fetch→ リモートの最新状態をローカルに取得(マージはしない) -
特定コミットを適用
git cherry-pick→ 別ブランチの特定コミットだけを取り込む指定したコミットだけ現在のブランチに適用
git cherry-pick <コミットID> -
履歴を整理
git rebase→ コミット履歴を一直線に並べ直す(履歴がきれいになる) -
変更を一時保存
git stash→ 作業中の変更を退避して、作業ディレクトリをクリーンにする -
タグ付け
git tag→ 特定のコミットに名前(バージョンなど)を付ける -
管理しないファイル指定
.gitignore→ Gitで追跡しないファイルやフォルダを設定する
ファイルを戻す
編集したファイルを最新のコミット時点に戻す場合
git checkout -f
特定のコミットの特定のファイルを戻す
git checkout <hash> <file>
リモートのブランチを使う
~/YS1 git branch -r
origin/HEAD -> origin/master
origin/dev
origin/master
~/YS1 git pull origin dev
From github.com:YumaYX/YS1
* branch dev -> FETCH_HEAD
Already up to date.
~/YS1
~/YS1 git branch
* master
~/YS1 git checkout dev
branch 'dev' set up to track 'origin/dev'.
Switched to a new branch 'dev'
~/YS1 git branch
* dev
master
~/YS1
new repo commands
reponame=""
echo "# ${reponame}" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:YumaYX/${reponame}.git
git push -u origin main
git remote add origin git@github.com:YumaYX/${reponame}.git
git branch -M main
git push -u origin main
ブランチ自体をそのコミットまで戻す(履歴を書き換える)
git reset --hard <commit-hash>
git reset --hard a1b2c3d
#=> pushしている場合は、force push