20211007のGitに関する記事は3件です。

gitコマンドにエイリアスをつけて作業効率をあげる

はじめに gitをターミナルから扱えるように学習中です。 gitに限らずではあると思うのですが、alias(エイリアス)をつけることによってコマンドを省略して打ち込めるのでその方法を記事にします。 コマンドにエイリアスをつけてコマンドを簡単にする エイリアスを和訳すると別名という意味があります。 例えば、私は慎重な性格なので、よく現在の状態をわかっていてもgit statusコマンドを多用して確認作業をしまくります。 git statusぐらいすぐ打てるだろ!って思われる方多いと思いますが、めちゃくちゃ使うのでgit stと打つだけでgit statusできたら小さなことですがめちゃ楽です。 他にもよく使うコマンドとして、git checkoutなんかもよく使います。 これもgit coで実行できたらすごい楽なんですよ。 ↑のようなことができるように設定していきます。 ターミナルで下記のようなコマンドで設定できます。 git config --global alias.<別名> <本来のコマンド> configは設定をいじるときのコマンドで--globalはpc全体に反映させます。--globalをつけない場合は今いるプロジェクト上だけでこれが反映されるようになります。 はじめに説明したようなgit stやgit coはこんなふうに設定します。↓ git config --global alias.st status git config --global alias.co checkout これで楽にコマンドが打てるようになります。 ちなみにエイリアスは別名をつけているだけなので、上記の設定を行った後でも、本来のgit statusやgit checkoutを入力しても使用することができます。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git push heroku masterが失敗する

書いた理由 備忘メモ 起こったこと rails tutorialを第3章を進める過程で git push heroku master を実行したとき、コケた remote: We will use "yarn" to install the CLI via "yarn add -D webpack-cli". remote: Do you want to install 'webpack-cli' (yes/no): remote: remote: ! remote: ! Precompiling assets failed. remote: ! remote: ! Push rejected, failed to compile Ruby app. remote: remote: ! Push failed 解決したこと webpack-cliを再インストールしたり、webpackを再インストールした上で、 最終的に再度以下を実行したらできた git commit -am "hogehoge" git push git push heroku master 思ったこと ただ、デプロイを試みる前にコミットをしていなかったため、 対策を打ったつもりが打ててなかった、という状況と思われる。 herokuの理解が足りていないが、コミットしたものしか上げられないものだったのだろう。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Git】fetch・mergeコマンドでリモートの情報をローカルに持ってくる方法!!!

fetchコマンド git fetchはリモートを追跡するブランチ(リモート追跡ブランチ)を最新化するためのコマンド。 # 例 git fetch <リモート名> <ブランチ名> # originのmainブランチ git fetch origin main # origin のすべてのブランチ git fetch origin # origin のすべてのブランチ(ショートハンド) git fetch リモート追跡ブランチ? fetchを理解するにはリモート追跡ブランチを理解する必要がある(英語ではリモートトラッキングブランチという)。 リモート追跡ブランチとは、リモーリポジトリにあるリモートブランチを追跡するローカルにあるブランチのこと。 注意する点としては、リモートのブランチではなくローカルのブランチであること。また、リモート追跡ブランチは自動的には最新化されず、fetchコマンドを使って最新化する必要がある。(追跡という名前から自動でやってくれそうだがやってくれない) リモート追跡ブランチをコンソール上で確認するには以下のコマンドで確認できる。-aオプションを忘れずに。 remotes/~から始まるブランチ。 $ git branch -a * develop main remotes/origin/HEAD -> origin/main remotes/origin/develop remotes/origin/main 例えば、git fetch origin mainをすると、origin/main に対してリモートリポジトリの状態が反映される。 mergeコマンド リモート追跡ブランチ(remotes/origin/developなど)の状態を現在のブランチに取り込むコマンド。 fetchでリモートリポジトリ(GitHubなど)から最新情報を取ってきても最新化されるのはリモート追跡ブランチだけ。 ので、リモート追跡ブランチの状態を現在作業しているブランチへ落としてくる必要がある。 以下を想定してmergeの使い方を確認する。 リモートリポジトリにある、developブランチから伸びているfeatureAブランチをローカルに取り込みたい # まずは、ブランチの状態と自分の場所を確認する。 $ git branch -a develop featureA * main remotes/origin/HEAD -> origin/main remotes/origin/develop remotes/origin/featureA remotes/origin/main # 次にリモーリポジトリにあるfeatureAをリモート追跡ブランチに反映させる $ git fetch origin featureA # リモート追跡ブランチを最新化できたらmergeする $ git merge remotes/origin/featureA としてはいけない。 # まだmergeはダメ。mergeは現在のブランチに取り込みを行うという機能である。 # 冒頭でgit branch -a を実行したが、そのときはmainにいるのでfeatureAに移動する必要がある $ git checkout featureA # 再度、git branch で場所を確認 $ git branch develop * featureA main # merge実行 $ git merge remotes/origin/featureA # 上記で実行したコマンドだけ抜き出し $ git branch -a $ git fetch origin featureA $ git checkout featureA $ git branch $ git merge remotes/origin/featureA # 初めからfeatureAにいる場合 # 最低以下だけでOK $ git fetch origin featureA $ git merge remotes/origin/featureA ちなみにmergeの際は以下のように少し短くできる。 $ git merge origin/featureA 上記のようにリモート追跡ブランチはコミュニケーションのなかでも「remotes/origin/featureAの~」ではなく 「origin/featureAの~」と使われることが多いので、覚えておかないと何の話しているんだ( ^ω^)・・・となる。 まだ自分のローカルにfeatureAがなくてローカルに持ってきたい場合 その場合もfetchを利用する。 # ローカルの状況を確認 $ git branch -a develop * main remotes/origin/HEAD -> origin/main remotes/origin/develop remotes/origin/main # リモートのfeatureAブランチの情報をローカルに持ってくる $ git fetch origin featureA # 再度ローカルの状況を確認 $ git branch -a develop * main remotes/origin/HEAD -> origin/main remotes/origin/develop remotes/origin/featureA remotes/origin/main # 現状だとリモート追跡ブランチにしか存在しない。ここで作業したいのでローカルでfeatureAブランチを切る。 $ git checkout featureA # ローカルの状況を確認 $ git branch develop * main featureA 以上のように、git checkout featureAで自動的にリモート追跡ブランチの状態のブランチを切ってくれる。 また、上記手順の冒頭で git fetch origin featureAとしているがgit fetch origin でもよい。 しかし、その場合はoriginにあるすべてのブランチを最新の状態に書き換えるので注意。 おまけ 以下はすべてリモートトラッキングブランチを指す可能性があることを留意する。 ・追跡ブランチ ・リモートブランチ ・リモート追跡ブランチ ・remotes/origin/featureA ・/origin/featureA ・上流ブランチ 上流ブランチについて リモート追跡ブランチは上流ブランチといわれることがある。 なぜか。それは追跡している状況を想像するとわかりやすい。 リモートブランチを追跡するリモート追跡ブランチがあり、リモート追跡ブランチを追跡しているブランチであるmainブランチやgit branch コマンドで作成したブランチがあるとする。 そのとき、mainブランチからみてリモート追跡ブランチが上流にあるため、リモート追跡ブランチは上流のブランチという。 (ちょっと疑問なのはリモート追跡ブランチから見てリモートブランチも上流ブランチといわれるのかな?)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む