20200908のGitに関する記事は11件です。

Git ブランチ名を間違えた

ブランチ名を間違えた

ローカルブランチ名の変更

・ git branch -m {正しいブランチ名}

リモートブランチの削除

・ git push origin :{削除するブランチ名}

リモートへブランチを送る

・ git puah origin {変更したローカルブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git コミットメッセージを間違えた

commitメッセージ間違えた

※間違えたローカルブランチにいること

「直前の場合」

・git commit --amend -m "正しいメッセージ"

「昔の場合」

・git log --oneline

上のコマンドで最新のコミットを1として修正したいコミットの番号を知る

・git rebase -i HEAD~{x} //{x}は修正したいコミットの番号
・修正したいコミットの先頭{pick}を{edit}に変更して:wq
・git commit --amend -m "正しいメッセージ"
・git rebase --continue
・git push -f origin {リモートブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git 新しいブランチの作成手順

新しいブランチの作成手順

※マスターブランチにいること

・git pull origin master
・git checkout -b {ブランチ名}
・git commit --allow-empty -m "start {ブランチ名}"
・git push origin {ブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git リモートから作成済のブランチをローカルに持ってくる

リモートから作成済のブランチをローカルに持ってくる

※マスターブランチにいること

・git fetch
・git checkout -b {リモートから持ってきたいブランチ名} origin/{リモートから持ってきたいブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git プルリクしたあと不要なコミットを削除したい

プルリクしたあと、不要なコミットを削除したい

※必ず実行したいブランチにいることを確認する
「方法1」履歴が残らない

・git reset --hard HEAD^
・コードを修正する
・git add と git commit をする
・git push -f origin {リモートブランチ名}

「方法2」履歴が残る

・git revert {コミットID}
・コードを修正する
・git add と git commit をする
・git push -f origin {リモートブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git addしたあとに戻したい

addしたあとに戻したいと思った

・git restore --staged {ファイル名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

コミットの履歴を確認したい時(コミットID知りたい時)

コミットの履歴を確認したい時(コミットID知りたい時)

・ git log
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Gitでプロジェクトを複製

clone the project with Git by running:

git clone git://github.com/~
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitの差分ファイル一覧

git diff --name-only master
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git コマンド一覧

gitコマンドの備忘録

gitのコマンドについてまとめていきたいと思います

git add

ファイルの変更をステージに保存する
・git add .
・git add ファイル名

git commit

git commitは変更を記録するコマンドです
・git commit
・git commit -m "メッセージ"
・git commit -v (エディタを開いてメッセージを付ける)
※commit メッセージをする際は。。
1行目:変更内容の要約
2行目:空行
3行目:変更理由

git status

現在の状態を確認するコマンド

git diff

変更差分を確認するコマンドです
・git diff
・git diff <ファイル名>
※git addした後の変更分
・git diff --staged

git log

変更履歴を確認する
・git log

一行で表示

・git log --oneline

特定のファイルの差分を表示

・git log -p test.txt

表示するコミット数を制限する

・git log -n <コミット数>

git rm

ファイルの削除を記録する
・git rm ファイル名
・git rm -r ディレクトリ

ファイルを残す場合(gitから消す場合)

・git rm --cached ファイル名

git mv

ファイルの移動を記録する
・git mv 旧ファイル 新ファイル
~~以下同じ操作
・mv 旧ファイル 新ファイル
・git rm 旧ファイル
・git add 新ファイル

ローカルの内容をリモートの内容に反映させる

リモートリポジトリ(github)に新規追加する

・git remote add origin "github:url"

git push

リモートリポジトリ(github)へ送信する
・git push リモート名 ブランチ名
・git push origin master

git alias

コマンドにエイリアスを付ける(短縮名)
・git config --global alias.ci commit
・git config --global alias.st status
・git config --global alias.br branch
・git config --global alias.co checkout
--globalはPC全体の設定をするコマンドオプション

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

untracked filesでのgit reset --hardの罠

要約

addした新規ファイルはgit reset --hardによって消えるので注意.

恐怖の git reset --hard

それはある夏の日のことです.
gitリポジトリの中で,untrackedファイルを作成し,git reset --hardを行いました.
(まだgitのリポジトリにaddもcommitもされていない新規のファイルのことを,git上ではuntracked filesと呼びます.)

touch foo   # 新規ファイルを作成
git status
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#         foo
# nothing added to commit but untracked files present (use "git add" to track)

git reset --hard   # untrackedファイルには影響しない

untracked fileがある状態でgit reset --hardをしても,それらのファイルには何の影響もありません.

しかし,untracked fileをaddした状態でgit reset --hardをすると大変なことになります(なりました).

touch foo   # 新規ファイルを作成
git add foo   # addする
git status
# Changes to be committed:
#   (use "git restore --staged <file>..." to unstage)
#         new file:   foo
git reset --hard   # addしたuntracked fileが消える

そうなんです.addしたuntracked filesが消えてしまいます.

これは,git addでインデックスに追加されたuntracked fileがgit reset --hardによって,
ファイルの存在ごとリセットされてしまうことで起こります.

対策:git reset --hard する前に

上記の問題の対策として,git resetしてからgit reset --hardするのがよいのではと思います.

git resetをするとインデックス登録がリセットされるため,untracked filesの状態に戻ります.
そして,git reset --hardで変更があるファイルだけリセットされます.

毎回git resetを打つのは面倒なので,.bashrcなどにエイリアスを登録しておきましょう.

alias git reset --hard='git reset && git reset --hard'

その他,良い対策方法あればご教授ください~

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む