LoginSignup
0
0

More than 1 year has passed since last update.

Git memo

Last updated at Posted at 2021-05-10

Gitを使う上での備忘録

ローカルリポジトリの作成からプッシュまで

https://qiita.com/sayama0402/items/9afbb519d97327b9f05c
https://www.hivelocity.co.jp/blog/34777/

対象のフォルダに移動して、

git init

ステージングしたいファイルを指定。(1つずつ指定した方が良い)

git add 'file'

コメントをつけてローカルリポジトリにコミット

git commit -m "comment"

プッシュするリモートリポジトリを指定。

git remote add origin 'url'

マスターブランチにプッシュ

git push origin master

default branchの変更

スクリーンショット 2021-06-29 19.44.20.png
スクリーンショット 2021-06-29 19.44.35.png

ブランチにマージ/プッシュしたコミットを取り消す

取り消し方には2通りある。
1. revert
1. reset + force push
前者は、コミットを取り消すためのコミットをすることで、結果的に足り消された"ことになる"操作。
履歴には誤ったコミット、取り消すためのコミットが残る。
後者は、文字通りコミットの取り消しができる。指定したコミットまでさかのぼることが可能で履歴からもコミットが消える。
(ただし、複数人で作業を行う場合などには履歴がまるっと消滅するため注意が必要。)

  • reset + force push の実施手順(クローンから)
// 該当のリポジトリをローカルにクローン
git clone 'url'
// 該当のリポジトリに入る。
cd 'path'

クローンする際に、ブランチを指定する場合は以下

git clone -b 'ブランチ名' 'url'

クローンした後、自分のブランチ名を確認する。
ローカルのブランチが一覧表示される。
*が付いたブランチが現在編集中のブランチ。

git branch

履歴を確認し、HEADがどのコミットを指しているか確認する。
終了するには'q'を押下

git log

遡りたいコミットのハッシュをコピーして控える。
(ここで指定したコミットが最終的にHEADになる。)
resetコマンドを叩き、コミットを取り消す。
完全な取り消しのため--hardを指定。--soft、--mixed では試していない。
(この時点ではローカルブランチのHEADにのみ影響を与える。リモートには影響はない。)

git reset --hard 'ハッシュ'

履歴を確認し、HEADが移動していることを確認する。

git log

force pushコマンドを叩き、リモートに変更を反映する。
(試していないがforceを指定しない場合はconflictしてエラーになるはず)
また安全のため、ローカル/リモート共にブランチを明示的に指定する。

git push -f origin 'ローカルブランチ名':'リモートブランチ名'

参考:
https://reasonable-code.com/git-push-cancel/
https://yu8mada.com/2018/08/10/how-to-push-a-local-branch-to-a-remote-branch-with-a-different-name-in-git/
https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe
https://qiita.com/chihiro/items/2fa827d0eac98109e7ee

雑記

クローン
クローンしたいディレクトリに移動
git clone 'url'

.gitファイルが不可視ファイルだった(ctrl+shift+.)
https://pc-karuma.net/mac-shotcut-key-show-hidden-files/

ファイル容量が大きく、アップロードできない場合の対処
https://qiita.com/kanaya/items/ad52f25da32cb5aa19e6

いつまで経ってもファイルでかいって怒られるなーと思ってたら、一度コミットしたものが残り続けているみたい
https://teratail.com/questions/55549

Git resetコマンド集
https://qiita.com/ChaaaBooo/items/459d5417ff4cf815abce

git push時のerror: src refspec master does not match anyについて
https://deepblue-ts.co.jp/git/git-push-error/

わけわからんので、一度 .gitファイルを削除
次からは、ファイルを1つずつ指定しよう。

.gitignore
.gitattributes
は、リモートのファイルがローカルのコミット時に対象になる模様。
したがって、上記のファイルはリモート側であらかじめ作成するか、先にプッシュしておく必要がある。

とりあえず全部ステージングする場合は以下を参照。
https://qiita.com/FiNGAHOLiC/items/d68d19ff9fecc59084e2

git add --all
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