20210413のGitに関する記事は6件です。

VSCodeでブランチ切り替えを快適にするショートカットを登録する

やりたいこと VSCodeで左下のブランチ名をクリックせずにショートカットコマンドでブランチを切り替えたい。 調べたところ自分でキーバインディングを定義する必要があったのでその時の備忘録です。 keybinding.json にショートカットを定義する メニューバーから[Code] -> [基本設定] -> [キーボードショートカット] を選択します。 右上のファイルのアイコンをクリックすると keybindings.jsonが開かれます。 "key" に任意のキーの組み合わせ、"command" に "git.checkout" と記述します。 [ { "key": "cmd+shift+b", "command": "git.checkout" } ] 4. 登録したショートカットキーを入力するとgit checkout操作のメニューが開きます。快適!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Git] 過去のコミットの Author と Committer 情報を書き換える

過去のコミット履歴から、特定のコミットの Author と Committer を一気に書き換える方法です。 経緯 自分は仕事とプライベートで GitHub アカウントを分けています。 最近、間違った方のアカウント名・メールアドレスでコミットしてしまっていたことに後から気付いて、修正したいことがありました。 まだプロジェクトとしては序盤でしたが、他の人のコミットも少し入っていて、その中から自分のコミットだけを修正する方法を調べたので、残しておきます。 やり方 便宜上 プライベートの GitHub アカウントを Neo <neo@example.com> 仕事の GitHub アカウント名を Anderson <anderson@example.com> として、 Neo <neo@example.com> => Anderson <anderson@example.com> に変更したいとします。 一応、変更前のコミットを見てみると、以下のようになっているはずです。 修正前 % git log --pretty=full -1 commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (HEAD -> branch/hoge, origin/branch/hoge) Author: Neo <neo@example.com> Commit: Neo <neo@example.com> これを上書きします。 ※ コミット情報を上書きするので、念の為バックアップ用のブランチを切っておいた方が良いです # 確認 git log --pretty=full # 修正 git filter-branch --env-filter ' if [ $GIT_AUTHOR_NAME = "Neo" ] then export GIT_AUTHOR_NAME="Anderson" export GIT_AUTHOR_EMAIL="anderson@example.com" export GIT_COMMITTER_NAME="Anderson" export GIT_COMMITTER_EMAIL="anderson@example.com" fi' 実行後に git log --pretty=full してみると、該当するコミット(例では Author が Neo のコミット)だけが上書きされているはずです。 修正後 % git log --pretty=full -1 commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (HEAD -> branch/hoge, origin/branch/hoge) Author: Anderson <anderson@example.com> Commit: Anderson <anderson@example.com> あとは、 --force-with-lease を付けて git push すれば OK。 参考 Git の Commit Author と Commiter を変更する - Qiita 指定したCommitのAuthorとCommitterを書き換える
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

.gitignoreでファイルをGitの管理対象外にする方法

.gitignoreとは Gitの管理対象から除外するファイルやディレクトリを指定するファイル .gitignoreでファイルまたはディレクトリを指定する方法 .gitignoreでGitの管理対象外とするファイルまたはディレクトリを指定する場合、.gitignoreからの相対パスで指定する。 以降の説明をするにあたって、以下のようなディレクトリ構成があったとする。 sample_directory ├ directory │ ├ file1.txt │ └ file2.txt ├ directory2 │ ├ directory │ │ └ file1.txt │ └ file2.txt └ file1.txt コメントアウト #から始まる行はコメントになる。 .gitignore # コメント 特定のファイル・ディレクトリをGitの管理対象から除外する 末尾以外に「/」を含めて指定した場合、パスで指定したファイルまたはディレクトリのみをGitの管理対象外とする。 .gitignore # 特定のファイルを管理対象外とする /directory/file1.txt # 特定のディレクトリを管理対象外とする /directory 先頭の「/」は.gitignoreファイルと同じ階層のファイルまたはディレクトリを指す。 同一のファイル・ディレクトリを全てGitの管理対象から除外する 「/」を含めずに指定または、末尾にのみ「/」を含めて指定(ディレクトリのみ)した場合、.gitignore以下の全サブディレクトリ下にある同名のファイルまたはディレクトリをGitの管理対象外とする。 .gitignore # 同名のファイルを全て管理対象外とする file1.txt # 同名のディレクトリを全て管理対象外とする directory # または directory/ ワイルドカード 任意のパターンに一致するファイル・ディレクトリを指定する。 .gitignore # 「/」を除く全ての文字にマッチする # 全てを管理対象外とする * # 特定のディレクトリ以下を全て管理対象外とする /directory/* # 特定の拡張子のファイルを全て管理対象外とする *.txt 除外対象から外す(管理対象に含める) 除外対象に含まれているファイル・ディレクトリをGitの管理対象に再び含める。 .gitignore # .gitignoreファイルと同階層にあるfile1.txtのみ管理対象とする * !/file1.txt ただし、ディレクトリを除外したあとにディレクトリ内の一部のファイルに対して「!」を使用してもGitの管理対象に含めることはできない。 除外したディレクトリから一部のファイルのみGitの管理対象に含めたい場合、以下のようにディレクトリを除外せずにディレクトリ内部のファイル全てを除外した後、一部ファイルに対して「!」を使って管理対象に含める。 .gitignore # ディレクトリ自体を管理対象外としたあとでは、ディレクトリ内のファイルを管理対象に戻せない。 # /directory/ # !/directory/file1.txt # ディレクトリ内部のファイルを全て管理対象外とした後に特定のファイルを管理対象に戻す。 /directory/* /directory/file1.txt 参考資料 Markdown: gitignore - Specifies intentionally untracked files to ignore Markdown: 【IT用語】.gitignoreの書き方を図解形式で理解しよう!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Git ブランチを作ってリモートに push & 追跡 までをやってくれるエイリアス作った

説明 ブランチを作るときに、git checkout -b して〜 git push origin HEAD して〜 が面倒くさかったので、エイリアスを作った。 登録するエイリアスコマンド vi ~/.zshrc して以下のコマンドを追記&保存する ~/.zshrc alias fd="git fetch origin develop:develop" alias branchcreate='(){git checkout -b $1 && fd && git reset --hard origin/develop && git push origin HEAD && git branch -u origin/$1}' 終わったら反映コマンドを叩く source ~/.zshrc 使い方 以下のコマンドを叩くと最新化した develop からローカルにブランチを作ってリモートにプッシュ&追跡までをやってくれる branchcreate feature/hogefuga
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【超初心者向け】Git構造の図解

Git構造を1秒で理解できるように図解にしてみました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者向け】git stashまとめ

git stashがありがたい状況 自分がgit stashを利用するケースは以下の2つです(他にも利用シーンがあればぜひコメントで) これらの状況では作業中の変更差分を一時的に退避させるgit stashコマンドが便利 ①今作業中のブランチとは別のブランチで急ぎで対応すべき作業が発生した。だが、今の作業は中途半端で出来ればまだコミットしたくない ⇒ 作業中の変更差分をstashで退避させて、作業対応後に退避させていた変更差分を取り出す ②新しいブランチを切り忘れてコーディングを始めてしまった ⇒ 変更差分をstashで退避させて、ブランチを正しく切り直してから変更差分を取り出す 実行手順 以下のコマンドで差分を退避させる git stash push -u オプションの説明/saveは非推奨 -u (--include-untrackedの省略形) 新規に作成されてまだgitにtrackされていないファイルもstashする オプションなしで実行するとtrackされているファイルのみstashされたりしてカオスになるのでとりあえずで付けておいて損はない(はず) ※git stash saveでも同様のことができますがこちらは非推奨コマンドになりました まだsaveを使っている人はpushにアップデートしましょう stashされた差分は以下のコマンドで確認できる git stash list 出力例 stash@{0}: WIP on git-stash-tutorial: f86cd30 Merge pull request #4 from git_user/branchname 取り出すときは対応するstash番号(stash@{0}みたいなやつ)を指定して取り出す git stash pop stash@{0} git stash applyでも可 popもapplyもどちらも変更差分を取り出す時のコマンド popは取り出すと同時にstashスタックから消える applyは取り出した後もstashスタックに残ったままの状態になる その他のコマンド git stash clear stashスタックを全て消去 無用な混乱を産まないためにも不要なstashがない状態にしておくと良い
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む