最終更新: yamanobori_old 2023年01月29日(日) 18:50:11履歴
概念
Git Cheatsheet
reset --hard をやるなら stashでワークツリーを記憶させておくことが有効
git push -u origin main
cloneしてきた元のリポジトリはoriginというニックネームで呼べるので,最後の行は,git push origin master と同じこと
一旦ローカルでマージする
%git pull
Auomagic merge failed;..などと言われる.
衝突を解消し,衝突を解消したコミットを作る
%git commit
%git push
※ワークツリーの変更をそのままotherに持って行けない場合は失敗するので,git stashを使う.
Git Cheatsheet
- git add <file name>:<file name> の変更をインデックスへ記録する
- git add -u:すべてのファイルの変更をインデックスへ記録する
- git add -p:インタラクティブにインデックスへ変更を記録する [s] さらに細かく分割
- git commit :コミットする(ログエディタが開く)
- git commit -m:コミットする(メッセージ付き)
- git commit <filename>:<filename>だけをコミットする
- git commit -a:現在の変更内容をすべてコミットする
- git commit -v:ファイルへの変更を見ながらコミットする
- git reset <filename>:<filename>に行った変更を元に戻す
- git reset <filename>:HEADにHEADとインデックスが戻る.(※要するにインデックスだけ戻る)<filename>だけ(ワークツリーはそのままま)
- git reset object filename:任意のコミットにファイルの内容を戻す.
- git reset HEAD^:HEAD^にHEADとインデックスが戻る(ワークツリーはそのまま)
- git reset object:objectにHEADとインデックスが戻る(ワークツリーはそのまま)
- git reset --hard HEAD^:<HEADコミットの一つ前のコミットオブジェクト>に戻る(ワークツリーも取消)
- git reset --hard HEAD:最新のコミットの状態に戻る(ワークツリーも取消)
インデックス | ワークツリー | |
--mixed(デフォルト) | 打ち消し | そのまま |
--soft | そのまま | そのまま |
--hard | 打ち消し | 打ち消し |
- git revert オブジェクト名:特定の不都合なコミットを打ち消して,新しいコミットを作る.
--o---Z---M---A---B---C---D masterコミットMの内容がまずい.
git revert M
--o---Z---M---A---B---C---D---W masterMを打ち消した新しいWというコミットを作る
- git revert --continue revertでconflictが発生した場合に修正後継続
- git revert --abort revertでconflictが発生した場合に中止
- git rebase -i HEAD~3:3つ前のコミットに戻り(ワークツリーはそのまま),コミットをやり直し
- >git commit --amend -a -> git rebase --continue
- git checkout <filename>:インデックスの内容のファイルを取り出す(結果的にワークツリーが戻る)
- git checkout HEAD <filename>:HEADの内容のファイルを取り出す(結果的にワークツリーが戻る)
- git checkout HEAD~4 <filename>:4つ前のコミットの内容のファイルを取り出す(結果的にワークツリーが戻る)
ブランチ名 | ファイルの内容は変更しない.ブランチの切り替え.チェックアウト前のファイル変更がこれからチェックアウトするブランチとぶつかる場合はチェックアウトが失敗する. |
ファイル名 | 今のブランチにいるままでファイルの内容を変更する |
- git commit --amend :直前のコミットのログだけ編集
- git commit --amend -a:直前のコミットに追加
- git reflog; git reset HEAD@{4}:reflogにもどす
- git diff :ワークツリーとインデックス
- git diff HEAD:ワークツリーとHEAD
- git diff --cached:インデックスとHEAD
- git diff [object]:ワークツリーとobject
- git diff コミット1 コミット2:コミット1とコミット1
- git diff コミット1 コミット2 -- filename:コミット1とコミットのファイル
- git status:今コミットしたらどうなるかを表示
- git log <filename>:filenameの履歴
- git log --pretty=short:要約したログ出力
- git log --oneline:1つのコミットにつき1行を表示
- git log --grep=<patten>:pattenの入ったログ
- git log --all --graph --oneline:グラフィカルに表示
- git blame <filename>:行単位の履歴
- git log:HEADから現在の変更
- git log -p:パッチ形式で出力
- git show:前回コミット(HEAD)の内容
- git show HEAD^^:前々回コミットの内容
- git show -M:ファイル名変更検知
- git diff -M:ファイル名変更検知
- git reflog:リポジトリにやった全ての変更を表示
- git mv ファイルの移動、リネーム
- git rm -f <filename>:<filename>を版管理下から除き削除する
- git rm --cached -f <filename>:<filename>を版管理下から除く
- 無視するファイル:.gitignoreファイルへ書いておく
- cd <BakDir>, git --bare init (bareはファイルを置かずに管理情報だけ置く)
- cd <Current WorkDir>,git push <BakDir> master
- cd <New WorkDir>,git clone <BakDir> <New Dir>
- rm -rf <Cuurnt WorkDir>
- cd <BakDir>, git --bare init (bareはファイルを置かずに管理情報だけ置く)
- git remote add origin <BackDir>
git push -u origin main
- git push <dst> <src>
cloneしてきた元のリポジトリはoriginというニックネームで呼べるので,最後の行は,git push origin master と同じこと
! [rejected] master -> master (non-fast forward)pullした後に別の変更がバックアップになされているため.
一旦ローカルでマージする
%git pull
Auomagic merge failed;..などと言われる.
衝突を解消し,衝突を解消したコミットを作る
%git commit
%git push
- git branch -av :ブランチ一覧
- git branch <branch name>:現在の状態でnameブランチを作る
- git checkout <branch name>:ブランチをnameに切り替える
- git checkout -b <branch name>:現在の状態でnameブランチを作り,切り替える
- git merge <branch name> :現在のワークツリーに<name>をマージする.
- git merge --abort:マージを中止する
- git merge --no-ff <branch name> :fast-foward mergeが可能な場合もマージコミットを作成する
- git merge --ff-only <branch name> :fast-foward mergeが可能な場合のみマージを行う
- git branch <branch name>:masterのまま更新を4回続けてしまった.今現在の状態でブランチを作る
- git reset --hard master~4:4つ戻ったところにmasterを戻して4回分はmasterブランチから廃棄
- git checkout <branch name>:再び最新の状態に戻って開発を続ける
ubuntu 10.04ではgitのバージョンが古く、httpsが使えない模様。そこで、SSHを利用する
Generating SSH Keys
Generating SSH Keys
- git clone --branch=<branch> <repogitory>
※ワークツリーの変更をそのままotherに持って行けない場合は失敗するので,git stashを使う.
- git remote add リモートリポジトリ名のURL :リモートを作成する
- git remote add origin リモートリポジトリ名のURL :リモートを作成する
- git remote -v リモートリポジトリの確認
- git diff origin/master master リモートトラッキングブランチとmasterの差分を表示する.
- git fetch リモートトラッキングブランチを更新する
- git fetch origin リモートリポジトリのすべての状態をリモートトラッキングブランチに反映する
- git pull <リポジトリ名=origin> <リモートブランチ名>リモートトラッキングブランチを更新し,ローカルブランチとmergeする. e.g $ git pull origin master 現在チェックアウト中のブランチとリモートのmasterブランチを統合する
- git branch --set-upstream すでにローカルブランチがあって,上流ブランチと関連付ける.
- git push -u まだリモートにブランチがない場合やリモートにプッシュする機会に使う
- git checkout -t -b クローン後に,追跡ブランチをチェックアウトして,ローカルブランチを作る場合に使う.
- git remote show origin 設定を見る
このページへのコメント
QEnrM7 This is one awesome blog.Really thank you! Will read on...
git - Yamanobori_old鐃緒申Memo - Seesaa Wiki鐃淑ワ申鐃緒申鐃緒申鐃緒申 for 鐃緒申鐃殉¥申鐃夙フワ申鐃緒申 moncler maya http://www.pslcbi.com/moncler2014.html