目次
- 目次
- はじめに
- リモートリポジトリからクローンする
- ブランチを作成する
- 今いるブランチを*で示す
- ブランチ一覧を確認する
- 作業ブランチを切り替える(チェックアウト)
- ブランチ作成 + チェックアウト
- 既存ブランチと同じ名前のブランチを強制的に再生成 + チェックアウト
- 全ての変更を破棄して強制的にチェックアウト
- ブランチ名を変更する
- ブランチを削除する
- リモートリポジトリとURLの一覧を表示
- リモートリポジトリを追加
- リモートリポジトリを削除
- 前回のコミットと比較した変更内容を表示
- ワークスペース上の編集 or 追加ファイルをステージに上げる
- ローカルリポジトリにコミットする
- 直前のコミットに上書きする
- コミットログを確認する
- インデックスの変更内容を取り消す
- git commitの実行を取り消す
- 過去のコミット直後に強制的に戻す
- ローカルへのコミットをリモートリポジトリにpushする
- リモートリポジトリの変更をローカルに取り込む
- リポジトリからファイルを削除 + ディレクトリから削除
- リポジトリからファイルを削除 + ディレクトリには残す
- ファイル名を変更する
- タグを付ける
- コンフリクトした時の解消手順
- SVNリポジトリからローカルのGitリポジトリを作成する
- ローカルGitリポジトリに変更を行い、SVNリポジトリへ反映する
- Git Bashで新規ファイルを作成する
- Gitのブランチモデル
- OSSの本家のリポジトリの変更をForkした自分のリポジトリに取り込む
- プルリクエストを使った開発フロー
- プルリクエストをIssueにリンクする
はじめに
今更ながら、会社でも自宅でもソースコード管理をするのにGitを使うようになったのですが、良く使う基本的なコマンドすら中々覚えられないので、いつでも見返せるように逆引きメモとして残しておこうと思います。
リモートリポジトリからクローンする
git clone <URL>
ブランチを作成する
hogeブランチを作成
git branch hoge
今いるブランチを*で示す
git branch
ブランチ一覧を確認する
git branch --all
作業ブランチを切り替える(チェックアウト)
hogeブランチに切り替える
git checkout hoge
ブランチ作成 + チェックアウト
hogeブランチを作成して切り替える
# from current branch git checkout -b hoge # from master git checkout -b hoge master
既存ブランチと同じ名前のブランチを強制的に再生成 + チェックアウト
hogeブランチが既に存在している場合でも新規に再生成
git checkout -B hoge master
全ての変更を破棄して強制的にチェックアウト
git checkout -f master
ブランチ名を変更する
ブランチ名をhoge1からhoge2に変更
git branch -m hoge1 hoge2
ブランチを削除する
ブランチhogeを削除
git branch -d hoge
リモートリポジトリとURLの一覧を表示
git remote -v
リモートリポジトリを追加
hogeリポジトリを追加
git remote add hoge URL
リモートリポジトリを削除
git remote rm hoge
前回のコミットと比較した変更内容を表示
git status
ワークスペース上の編集 or 追加ファイルをステージに上げる
編集 or 追加されたhogeファイルをステージに上げる
git add hoge
ローカルリポジトリにコミットする
git commit -m "comment"
直前のコミットに上書きする
git commit --amend
コミットログを確認する
git log
インデックスの変更内容を取り消す
git reset <file path>
現在のブランチの先頭コミットと同じ状態に戻すなら、
git reset HEAD <file path>
最後のコミットから2回以上のaddがあった場合、1回目を含めて全てがリセットされるので、git addコマンド1回分の取り消しではない。
git commitの実行を取り消す
最新のコミット内容をちょっとだけ変更したい時。
インデックスには最新の変更を残したまま、HEADだけを一つ前に巻き戻す。
git reset --soft HEAD^
過去のコミット直後に強制的に戻す
ローカルのmasterとリモートのorigin/masterと食い違ってしまい、とりあえずリモートに合わせたい時に、コマンド一撃で合わせる事ができる。
git reset --hard origin/master
ローカルへのコミットをリモートリポジトリにpushする
git push -u origin master
リモートリポジトリの変更をローカルに取り込む
git pull
リポジトリからファイルを削除 + ディレクトリから削除
git rm hoge
リポジトリからファイルを削除 + ディレクトリには残す
git rm --cached hoge
ファイル名を変更する
git mv original_file renamed_file
あとはいつも通りにcommit->push
タグを付ける
コメント無しの場合
git tag v1.4
コメントありの場合
git tag -a v1.4 -m "comment"
後からタグを付ける
付けたいコミットを指定すればいい
git tag -a v1.4 -m "comment" 9fceb02
作成したタグをリモートに反映させる
git push origin v1.4
コンフリクトした時の解消手順
SVNリポジトリからローカルのGitリポジトリを作成する
作業ディレクトリに移動して、そこにSVNリポジトリをクローンする。
cd local_working_directory git svn clone <SVN repository URL>
git clone -sにすると、trunk, branches, tagsの構成をそのまま取り込める。
ローカルGitリポジトリに変更を行い、SVNリポジトリへ反映する
例えばhoge.pyというファイルを修正したとして、まずはローカルcommit
git add hoge.py git commit -m "comment"
次にSVNのリモートリポジトリに反映
git svn dcommit
最後にちゃんと反映されているか確認する。作業ディレクトリに移動して、
svn update svn log
Git Bashで新規ファイルを作成する
touch hoge
Gitのブランチモデル
OSSの本家のリポジトリの変更をForkした自分のリポジトリに取り込む
まずはローカルブランチをmasterにチェックアウト
git checkout master
upstream(OSSの本家リポジトリ)の最新版の内容をfetch
git fetch upstream
ローカルのmasterにupstreamの内容をmergeする
git merge upstream/master --ff-only
最後にリモートのmasterに更新を反映する
git push origin master -u