0
0

More than 1 year has passed since last update.

git メモ

Last updated at Posted at 2020-01-07

git lab にあがっているブランチのソースを取得する方法

git status で変更がないことを確認

git fetch

git checkout -b [ブランチ名] origin/[ブランチ名]

git checkout -b feature_11_04 origin/feature_11_04

git stash で変更退避・stashリスト表示

git stash
git stash list

変更復元、復元したstashを削除する

# 最新のstashを復元し、削除 
git stash pop 
# N番目のstashを復元し、削除
git stash pop stash@{N} 

stashは復元し、復元したstashを残す

# 最新のstashを復元し、残す
git stash apply 
# N番目のstashを復元し、残す
git stash apply stash@{N} 

N番目のstashを削除する

# 最新のstashを削除
git stash drop
# N番目のstashを削除
git stash drop stash@{N} 

git stash で隠したコードと今のコードの変更点を表示するコマンド

git stash show -p stash@{0}

もしくは

git show stash

特定のファイルをgitの管理外とする

git rm index.html

特定のファイルのlogと修正内容を確認する

git log -p index.html

SSHキー作成、GitHubとのSSH接続を確認する

ssh-keygen -t rsa
ssh -T git@github.com

ssh-keygenはどこのディレクトリで実行してもホームディレクトリにキーが作成されるようになっている。

aliasの追加・削除・確認

git config --global alias.st status
git config --global --unset alias.st
git config --global --edit

ワーキングで変更中のファイル、addでステージングに移したファイルすべて変更破棄

(最新のコミット時の状態と一致した状態にする)

git reset --hard

指定されたコミットIDの状態に戻す

git reset --hard <commit ID>

これよりあとにコミットした内容はlog含めすべて破棄。
新しくファイルを作成してそのファイルをcommitしていれば、そのファイルは削除される。

指定したコミットIDより後にコミットしたlog破棄

(コミットID時のaddとcommitも無効にする)

以下のログの場合、

$ git log --oneline
3a61ab6 12/28(thu) delete config file
5c32ada 12/27(wed) modify config file
abfac40 12/26(tue) add config file
bf0e0fd 12/25(mon) create new project 

abfac40より後の5c32adaと3a61ab6のlogを破棄したい場合

git reset abfac40

3a61ab6 5c32ada のlogは破棄される。
3a61ab6 5c32ada の変更内容は保持される。

addした後と、最新コミットとの変更箇所を確認(ステージングエリアファイルとの比較)

git diff --cached

modified(変更)ファイルをコミット(addを省略)

git commit -a
git commit -a -m "コメント"

最新のコミットのコメントを編集・修正したい場合

git commit --amend

Githubにpushしたcommitコメント修正する場合

git commit --amend
(エディタが立ち上がるのでコメント修正する)
git push -f origin master
(強制的にpushして最新のコメントを上書き)

Githubにpushしたファイルを取り消す場合

git reset --hard <commit ID>
(指定されたコミットIDの状態に戻す)
git push -f origin master
(強制的にpushされた内容を削除する)

もしくは

git revert <commit ID>
git push origin master

revertはコミットを取り消したというログが残る。
resetして強制pushした方は取り消した記録は残らない。

直前のコミットにファイルを追加・修正する場合

git add <追加・修正したファイル名>
git commit --amend --no-edit
# --no-editでコミットメッセージは変更しない。コミットIDは更新される。

もしくは

git reset HEAD^

git add .
git commit

^は一つ前という意味。最新コミットの一つ前を指定している
^^で二つ前。~2でも良い。HEAD~5だとHEADの5つ前のコミット。

二つのcommit間の差分を出力

git diff <コミットID1> <コミットID2>

現在のブランチの状態からの差分を出力

git diff <コミットID1>

二つのcommit間で差分があるファイル名の一覧を取得

git diff --name-only <コミットID1> <コミットID2>

二つのcommit間の差分をファイルを指定して出力

# ファイル名一覧取得
git diff --name-only <コミットID1> <コミットID2>

# ファイル名を指定して差分出力
git diff <コミットID1> <コミットID2> <ファイル名>

git commitで特定ファイルのみコミット

# 「--」は無くても可
git commit -m 'add' -- hoge.txt
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0