【自分用】Git,Git-Svnの使い方

こんにちは、やまだたいし( やまだ たいし (@OrotiYamatano) | Twitter )です。
Git-Svnの使い方を忘れてしまうので自分用のメモです。

目次


GitSVNの使い方


GitSVNの構築


SVNの構築をした後に

git svn clone -s https://サーバーアドレス

と入力する。

すでにコミットがある場合はでかすぎるて動かない場合があるので、
動かない時はコレを使う。 qiita.com

リポジトリを作ってからフェッチする方法もある。

GitSVNの更新


git svn rebase

でgit pullと同様の動作が行われるっぽい?

GitSVNでPush


git svn dcommit

でgit pushと同様の動作が行われるっぽい?

Gitの使い方


変更ファイルをステージングへ


git add

ステージングから取り消し


git reset HEAD

(ローカルに変更は残る)

新規追加ファイルを完全に消す


ステージングに上げてない場合、rmコマンドで消すだけ。

ローカルの変更退避


git stash

git worktreeとかいうのも使えるけど……。

コミット

git commit -m "~~~~"

コメントを別で上げる場合は、-m オプションはいらない。

前回コミット修正


(git addなどをしてから)

git commit --amend

コメントだけ修正したい場合

(git addなどをしてない状態で)

git commit --amend

git comment --amend -m "aaaa"

複数のコミットをまとめる

(履歴も消えるので要注意)

git rebase -i HEAD~4

指定したコミットをまとめる。
上記の場合、Headを含む4つ。

pick →何もしない
fixup → 上のpickコミットにまとめる
squash → 上のpickコミットにまとめるコミットメッセージの統合も行う

ログを見たい

git log

コミットする前に変更を見たい

git status

差分を見たい

git diff xxxx..yyyyy

git diff head^..head

差分ファイル名前だけみたい

git diff head^..head --name-only

ステージングとの差分を見たい

git diff --staged

Conflict時の解決


自身の変更を適用したい時

git checkout --ours ~~~~~~

相手の変更を適用したい時

git checkout --theirs ~~~~~~

マージしたい


git merge xxxx

xxxx を現在のブランチにマージする

Checkout 本当は別コマンドに慣れたい


kakakakakku.hatenablog.com

git のバージョンを調べる


git --version

gitのバージョンアップ


(windowsの場合)

2.13でコマンドが実装されてるはず……。

git update-git-for-windows

gitで認証情報を保存しておく


credential.helperで保存しておける。

(SSHの場合でGitHub,Windowsの場合)

git config --global credential.helper wincred

で保存される。
wincredという補助ツールらしい?
Windowsの認証情報を保存しておくやつを利用する

git config --global credential.helper cache

タイムアウトするまで使える。デフォでは15分?

GitLFSの認証情報を保存しておく


ssh-add /Users/user_name/.ssh/id_rsa

何か怒られたら?

eval ssh-agent

↑をしてから実行

まとめ


とりあえず、思い浮かんだものだけ。
cherrypickとかについてもいずれ書く。
今後も詰まったら追加していきたい。