git ローカルブランチ名を変更

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

$ git branch -m [変更前ブランチ名] [変更したいブランチ名]

変更イメージ

$ git branch // ローカルブランチ確認
  feature/#1_bugphenix
* master
$ git branch -m feature/#1_bugphenix feature/#1_bugfix
$ git branch
  feature/#1_bugfix
* master

こうなります。

git ローカルのブランチを削除する

ローカルブランチの確認

$ git branch
  feature/#1_bugphenix
* master

ローカルブランチの削除

git branch --delete feature/#1_bugphenix

※削除しようとしているブランチにいる状態で削除コマンド打つと下記エラーになるので、
別ブランチに移動しておく
error: Cannot delete branch 'feature/#1_bugphenix' checked out at '/Users/hoge/Dev/sandbox/test'

git cloneで、「fatal: unable to access 〜Peer reports incompatible or unsupported protocol version.」

久々入るCentOS7のサーバで、git cloneしようとしたらこんなエラーが、

[root@hoge sandbox]# git clone https://github.com/〜〜〜〜〜.git
Cloning into '〜〜〜〜'...
fatal: unable to access 'https://github.com/〜〜〜〜〜.git/': Peer reports incompatible or unsupported protocol version.

curlが古いのが原因らしい。

[root@hoge sandbox]# yum update curl

curlをアップデートしたら解決。
無事git cloneできました。

git reset –hardで指定コミットの状態に完全に戻す(追加ファイルで、「?」ファイルなども消す)

※まちがって進捗途中のファイルを消さないように扱い注意

git reset –hard で一旦ソースを指定のバージョンに戻す

$ git reset --hard HEAD

だが、これだけだと、管理ソースに含まれないソースがgit statusで「?」で残ってしまう。
Unity開発などで、試しにAsset等を入れると毎回これを処分するのは面倒。

そんな時は下記git cleanコマンドで削除

git clean -fd

-f はカレントを指定、 dはディレクトリもという意味

git 一時的に過去のログに戻して、また最新

gitのソースをそのまま公開ソースとして利用している場合に、

1つ前のソースに一時的に戻して、最新版との動作の違いを確認したい事がある。

そんな場合に、、、

※扱い注意!

git log 
戻りたいログを確認し

git reset --hard コミットログ
そのソースに戻り、ソース上もそれに切り替える(--hard注意!)

で、動作確認。

git reflog 
で「git reset --hard コミットログ」する前の
「HEAD@{〜}」を確認

git reset --hard HEAD@{〜}
で作業前に戻ります。


git リモートブランチを前のバージョンに戻す

gitを使っていて、リモートブランチのログを戻したいなとおもって、
ググってみたがやりたい事と一致する記事がなかったのでメモ。

まず下記でローカルのバージョンを戻す。

$git reset --hard fdsa2432fda4f189a85a3319f9c782c0a49f8

※fdsa2432fda4f189a85a3319f9c782c0a49f8は git log等でどこに戻るか決める。
※–hardをつけないとローカルのソースは戻らないので編集中となるgit status 等で確認
※もしまちがったログに戻ってしまったりしたら git reflog で指定のHEADに戻る!

その後、pushしてリモートブランチのログを戻す!

$git push origin master

するとこんなエラーが、、、、

To https://user@examplegitgittesttest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘https://user@examplegitgittesttest.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. ‘git pull’)
hint: before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.

ですが、恐らくpushしようとしているバージョンが、
古いからエラーを出してくれているようなので(勝手な推測ですw)、
そんな時は、リモートブランチ名に「+」を追加!

$git push origin +master

※強制的にpush!!

これで、リモート上のログを見ると、指定のバージョンに戻ってました!