20220113のGitに関する記事は4件です。

GitHubのデフォルトのブランチ名変更方法

デフォルトのブランチ名を何故変更しようとしたのか 2021年からGitHubのデフォルトブランチが"master"から"main"に変更されたはずでしたが、何故か私のアカウントでは新規のリポジトリのデフォルトブランチが未だに"master"のままだったので自力で変更しました。 デフォルトブランチ名変更の経緯 デフォルトブランチ設定箇所
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Git】マージ

【Git】マージ 【基本のマージ ~ プルリクエスト】 環境 : visual studio 2019 professional ① 「ローカルブランチのfeature(ワーキングツリー)」を「git commit」する。 「git push」は、まだしない事。 ② 「origin/master」ブランチを、「git fetch + git merge」or 「git pull」する。 (最新化する) ③ 「origin/master」ブランチ(元)を、「ローカルブランチのfeature」へマージする。 ④ 「競合を解決する」 「ファイル比較」:差分を確認する。 「左右どちらか」 or 「左右両方」を、選択する。 「マージボタン押下」 ※上手くいかない時は、「WinMerge」など使うこと。 ⑤ VS再起動 ⑥ 「ビルドされること(動作確認)」を確認したら、「git push」する。 ⑦ 【プルリクエスト】 「プルリクエスト先」のブランチを確認すること。 (※) VSでは、「プロジェクトのファイル」(.csproj) (プロジェクトの直下あたりに配置されている。) は、手動でマージします。 「プロジェクトのファイル」(.csproj)で、エラーがあっても、 「ビルドエラー」は出ません。。 【ローカルブランチに、リモートブランチを取り込む】 ① 「ローカルブランチのfeature(ワーキングツリー)」を、「git stash」 or 「git commit」 or 「git push」する。 ② 「origin/master」ブランチを、「git fetch + git merge」or 「git pull」する。 (最新化する) ③ 「origin/master」ブランチ(元)を、「ローカルブランチのfeature」へマージする。 ④ スタッシュがあれば、「ローカルブランチのfeature」へ、スタッシュを戻す。 (※ 「現在のブランチ」を、必ず確認すること!!)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Gitコマンド】

【Gitコマンド】 【現在のブランチ】は、「どこ?」 「ブランチ情報」を確認する。 $ git status 「ブランチと追跡情報」を確認する。 $ git status -sb 「ブランチのコミット履歴」を確認する。 $ git log 【スタッシュ】 「スタッシュのリスト」を確認する。 $ git stash list 「スタッシュ」を実行する。 $ git stash save " {コメント} " -u // -u は --include-untracked の略。 //「コミットしていない変更」の(「addしたファイル」・「addしていないファイル」の両方)「変更した部分」が退避されます。 //「ワーキングディレクトリ上」は差分がない状態。 「スタッシュを元に戻す」: 直近のスタッシュ(一番上)が戻る。 $ git stash apply 「スタッシュを元に戻す」: 指定バージョンが」戻る。 $ git stash apply stash@{0} 「スタッシュを削除する」 $ git stash drop stash@{0} 「退避した変更の詳細」を確認する。 $ git stash show stash@{0} -p ある時点のスタッシュとの差分 $ git diff stash@{0} 【マージした後、衝突したとき】 「mergeを取り消す」 $ git merge --abort 「マージした後、まだコミットしていない場合」 $ git reset --hard HEAD^ //HEAD^ : ^の数がn個前になる。1個のとき「HEAD@{1}」ということ。 「マージした後、コミットもした場合」 $ git reset --hard ORIG_HEAD 「Pullに失敗した時」は、この記事が参考になります。 【初心者向け】git fetch、git merge、git pullの違いについて 【Gitの基本♪】 「ブランチを切り替える」: 「stash or commit or push」のどれかを実行してから $ git checkout 「リモートから最新情報をローカルに持ってくる」 $ git fetch ローカルの「origin/master」ブランチ ⇒ ローカルの「master」ブランチ $ git merge 自動的に「リモートリポジトリの内容のマージ」をする。 「git fetch + git merge 」をしている。 $ git pull # 特定ファイルを特定のコミットの状態にする $ git checkout <commit> -- <filename> $ git restore --source <commit> <filename> 差分を確認 $ git diff 「すべての新規ファイル」をインデックスに追加する。 $ git add . 「新規ファイル」をインデックスに追加する。 $ git add [ファイル名] コミット内容を、修正する。 $ git commit ammend 複数コミットを、「1個のコミット」にまとめる。 $ git squash 「git fetch、git merge、git pull」も、下記の記事がわかりやすいです。 【初心者向け】git fetch、git merge、git pullの違いについて 【おまけ~】 【Git:ローカル ~ リモートへ】 ワーキングツリー ⇒ インデックス ⇒ ローカルリポジトリ ⇒ リモートリポジトリ の順 ワーキングツリー : 最新の状態(addされていないものも含まれる) インデックス  : コミットするためのファイル状態(addした) ローカルリポジトリ : ファイルの変更履歴を記録(ここまでローカル環境) リモートリポジトリ : ファイルの変更履歴を記録(リモート環境にて共有できる) 変更履歴を反映する。 $ git add : ワーキングツリー ⇒ インデックス $ git commit : インデックス ⇒ ローカルリポジトリ $ git push : ローカルリポジトリ ⇒ リモートリポジトリ 【オプション】 -s --short ショートフォーマットで出力します。 -b --branch ショートフォーマットでもブランチと追跡情報を表示します。 【おまけ 2 ~】 HEAD :  最新のコミットの状態を表している。 参考記事 【初心者向け】git fetch、git merge、git pullの違いについて
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitのcommit数を簡単に集計する方法

はじめに メンバーの評価まわりをする背景から、ふとgitのcommitを人単位で集計したくなったことがありました。 誰がどれくらいcommitしているのか 対象期間(評価期間)に1番commitしてるのは誰なのか このリポジトリに関して1番詳しいのは誰なのか 集計することでこのあたりが知れるようになります。 コマンド git shortlog -nse gitに既に用意されていました。 オプション指定なしだとアルファベット順に表示されます。 -n: コミット数多い順 -s: コミット数のみ表示 -e: メアドも表示 期間指定は以下の通りです。 # 直近半年の間でコミットの多い人を調べる git shortlog -nse --since="6 month ago" # 2021年でコミット数が多い人を調べる git shortlog -nse --since="2021-01-01" --until="2021-12-31" 実行結果例 コミット数 人 5000 hoge 4000 foo 3000 bar マッピング 人によっては異なるメールアドレスでのコミットがありました。 これらを同一人物として扱って集計するために.mailmapを作成しました。 必要に応じて使ってください。 こちらを参考にしました。 https://git-scm.com/docs/gitmailmap 分かりにくかった点としては2つしか横並びで書けないようで3つ以上並べても適用されませんでした。 3つ以上の場合は縦に並べて書くと反映されました。 .mailmap Joe R. Developer <joe@example.com> Joe R. Developer <joe@example.com> Joe <bugs@example.com> Jane Doe <jane@example.com> <jane@laptop.(none)> Jane Doe <jane@example.com> <jane@desktop.(none)> Jane Doe <jane@example.com> Jane <bugs@example.com> 別の方法 ちなみに後から知ったんですが、githubを使っている場合はリポジトリの「Insights」タブの「Contributors」から同じような情報を得ることができます。 こちらだとコマンド実行も不要でアクセスするとすぐ見れるのでおすすめです。(こっちの方が楽) 最上部のグラフをドラッグすると範囲指定も可能です。 まとめ 「誰がどれだけ詳しいか?」 「困った時に誰に聞けば良いか?」 みたいな指標にも使えるかと思います。 色んなプロダクトで色んな範囲指定で集計して遊んでみてください!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む