20220127のGitに関する記事は7件です。

ブランチを一括削除

はじめに リモートでマージ済のブランチがローカルに溜まってしまうと邪魔になるので一括で削除できるプログラムを作成しました. 面倒な設定なんて全く必要なく, ただインストールするだけで使用できるシンプルなヤツです. grep して一括削除!!みたいなことなら以下の記事に書いてある方法で実現可能です. gitの複数のブランチを一括で削除する Gitでマージ済みブランチを一括削 featureブランチを一括削除 GitDetroit を作りました. $ gdes do you remove feature/create_user-activate_logic ? (y/n) みたいな感じで, feature/xxx_xxx_xxx なブランチを不要なもののみ削除することができます. ちなみに, 上記の例では, git-detroit コマンドに対してエイリアスを作成しています. インストール Homebrew を使用するので最初にインストールします. $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" GitDetroit は公式ではないので, 最初に tap してからインストールします. $ brew tap dj-hirrot/git-detroit $ brew install git-detroit 以上. これだけで使用することができます. また, 以下のコマンドでエイリアスを作成することができます. * [cmd] にエイリアスコマンドを入力します $ $ echo "alias [cmd]='git-detroit'" >> ~/.alias
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitコマンドのエイリアスでも補完したい

前提 git-completion.bash を導入している. 方法 vim ~/path/to/your/.git-completion こいつにエイリアスを登録してやるだけ. __git_complete [alias] _git_command みたいな感じ. 実際には __git_complete git __git_main __git_complete gitk __gitk_main # 以下にエイリアスに合わせた形式で追加 __git_complete cko _git_checkout __git_complete br _git_br こんな感じになる.
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

安心して!Gitでコミットエラー起きてファイルどっか行った気がしたときに確認すること

記事はこちらに移管しましたmm
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RubyMineでgit操作(checkout、push、pull、commit、diff、merge、conflict)

いままではSourceTreeというGUIツールでgitを操作していましたが、RubyMineの内臓機能を使ってみたらだいぶ快適でしたので、まとめます。勉強中、試行錯誤中のため、誤りや、より効率的な方法があれば教えてください? 環境、前提 RubyMine 2021.3.1 macOS Catalina リモートリポジトリ:GitHub GitHubアカウントが登録済みであり、リポジトリも登録済みの前提で記載します。 もしかすると他のJetBrain製品でも参考になるかもしれません。(未確認です) RubyMineにGitHubアカウントを登録する 以下の画面からGitHubアカウントが登録できます。 Preferences > Versin Control > GitHub 方法は3つあります。 Log In via GitHub OAuthでGitHubと連携する方法です。 Log In with Token GitHubでパーソナルアクセストークンを生成し、RubyMineに登録する方法です。 Log In toGitHub Enterprise 企業向けの有料GitHub?これはわからないので説明していません。 「Log In via GitHub」の手順 「+」マーク→「Log In via GitHub」 ブラウザが開き、JetBrainのページが表示され、GitHubを許可しますか?のように聞かれるので、承認すればOKです。 詳しく覚えていないのですが、画面の指示通りに操作すれば大丈夫です^^; ただ、私のGitHubアカウントの場合、organization側の承認も必要だったようで、面倒だったので下の方法でやりました。 「Log In with Token」の手順 「+」マーク→「Log In with Token」 このようなダイアログが表示されます。 連携に必要な権限が付与されたトークンをすでに持っていれば入力すればよいのですが、今回はトークンを生成するところから記載します。 「Generate」をクリック ↓ ブラウザでGitHubの認証画面が表示されるのでパスワードを入力 ↓ パーソナルアクセストークンの作成画面が表示されます。 必要な権限がすでにチェックされています。 そのまま「Generate token」クリック ↓ トークンが生成され、画面に一度だけ表示されます。 トークンをコピーし、RubyMineに入力して「Add Account」します。 下がGitHubアカウントを追加できた状態です。 ステージングをONにする設定 RubyMineではデフォルトでステージングがありません。changelistsという変更ファイル群から選択してコミット、という操作を行います。個人的にはステージングがあった方が通常のgitと同じ感覚で操作できるので、設定を変更してステージングを出すようにします。 Preferences > Version Control > Commit > 「Use non-modal commit interface」 をON Preferences > Version Control > Git > 「Enable staging area」をON Git関連のウィンドウ Gitウィンドウ command + 9 で表示されます。 ブランチ一覧、変更履歴などが確認できます。 ドッキングさせていると狭くて使いにくいので、私はFloatで使っています。 Commitウィンドウ command + 0 で表示されます。 変更差分、diffを見て、ステージングし、コミットするためのウィンドウです。 Git操作 ブランチのcheckout Gitウィンドウのブランチ一覧 ブランチ名の上で右クリック→Checkout この方法でリモートブランチを落とすことも、ブランチを切り替えることもできます。 ちなみに、RubyMineの右下にあるブランチ名をクリックすると、ブランチ一覧がポップアップされ、ここからもブランチの切り替え操作ができます。 ブランチ一覧で矢印(↙↗)アイコンが表示されることがあります。 まだ取り込んでいない変更がある場合は青色下向きアイコン、 まだpushしていないcommitがある場合は緑色上向きアイコンが表示されます。 ブランチの削除 ローカルブランチを削除するには、ブランチ一覧から対象のブランチをクリックし、Delete 同時にリモートブランチも削除する場合は、上記の操作の直後に表示されるこちらのお知らせの「Delete Tracked Branch」をクリックします。 fetch、pull Gitメニュー > Fetch Gitメニュー > pull commit ファイルを修正後、Commitツールウィンドウで差分の確認ができます。 差分を確認するには、ファイルを選択してダブルクリック、もしくは command + d でdiffを表示します。 問題なければ、ドラッグしてstagedに移動し、コミットメッセージを入力してcommitします。 commit前の変更を取り消し 間違った変更を行ごとに取り消したい場合は、diffウィンドウで「>>」をクリックするとリポジトリの状態に戻すことができます。 ファイルごと変更を取り消したい場合は、ファイルを右クリック→Rollback push Gitメニュー > Push merge マージ先のブランチをcheckoutしておき、 Gitメニュー > Merge こちらのダイアログが開きます。 マージ元のブランチを選択して実行すればOKです。 Modify optionsからマージ時のオプションを設定できます。 この図では--no-commitオプションをつけています。 競合の解決 マージ時に競合すると、このような競合解決画面が表示されます。 どちらか片方の変更で上書きする場合は「Accept Yours」or「Accept Theirs」をクリックすれば良いです。 コードの編集が必要な場合はダブルクリックして編集画面を開きます。 このような3ペイン画面が表示されます。 左:現在のブランチ(マージ先のブランチ) 中央:編集結果 右:リポジトリのブランチ(マージ元のブランチ) 左右のペインは読み取り専用ですが、中央のペインは編集可能であり、マージ元、マージ先を両方見ながら作業ができます。 色の意味 赤:競合が発生した箇所 緑:追加された箇所 グレー:削除された箇所 競合の解決方法は、変更を取り込む場合は「>>」をクリック、変更を破棄する場合は「☓」をクリックします。 すべて解決できたらAppleyをクリックします。 いままでは競合したとき自動で挿入される======みたいなのを手動で消していたのですが、消し忘れやマージミスがまぁまぁ発生していました。とくに削除行がマージミスにより復活してしまうことが多く…。 このRubyMineの競合解決画面はそのあたりの問題を解決してくれそうです。とてもお気に入りです。 参考サイト
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Githubのリポジトリにコマンドでファルをアップロードする方法

git init git add . git commit git remote add origin git@github.com:shotaroonishi/{リポジトリ名}.git git remote set-url origin git@github.com:onishishotaro/{リポジトリ名}.git git push origin master ちょくちょくGithubの仕様が変わってできない時もある。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【git】upstream を Current Branch にmerge する

## upstream を登録 git remote add upstream git://github.com/ ## 削除用 git remote rm upstream ## fork元のレポジトリを持ってくる git fetch upstream ## fork元のmaster をfork先のmaster にマージする git merge upstream/master
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git rebase方法メモ

git rebase -i {まとめたいcommit中一番最初のcommmitのハッシュ} (vi:1回目)vi で %s/pick/fixup/g vi上, 一番上のコミット(一番最初のコミット)のみpick に戻す。 (vi:2回目)コミットメッセージ入力
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む