今さら聞けないGit 2021年10月13日

今さら聞けないGit 2021年10月13日

Gitの基本とコマンド

#目次
######基本
[0.はじめに](#0-はじめに)
[1.ファイルの作成、編集を行う](#1-ファイルの作成、編集を行う)
[2.ファイルの作成/変更/削除をgitのインデックスに追加する](#2-ファイルの作成/変更/削除をgitのインデックスに追加する)
[3.変更結果をローカルリポジトリにコミットする](#3-変更結果をローカルリポジトリにコミットする)
[4.ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる](#4-ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる)

######ブランチ
[1.ブランチの作成、移動](#1-ブランチの作成、移動)
[2.ブランチにプッシュ](#2-ブランチにプッシュ)
[3.ブランチからプル](#3-ブランチからプル)
[4.ブランチのマージ](#4-ブランチのマージ)

#0. はじめに
Gitのコマンドを忘れてしまうのでメモ程度にまとめました。
「1」の作成は初回のみ行い、「2」から「4」を繰り返す。

#1. ファイルの作成、編集を行う
ローカルのPC上にローカルリポジトリを作成する。
今回は[sa

元記事を表示

DevOps+git+ssh 環境の作り方

DevOpsをssh接続でgitクローンする方法を毎回忘れるので、その備忘録。

環境
・windows10
(gitクライアントソフトはsourcetreeを使った)

## sshkeyの作り方
SourceTreeからターミナルを起動する。(任意のディレクトリで構わない)

“`Bash
$ ssh-keygen -t rsa -C “(登録のメールアドレス)”
“`

ターミナルは起動したままにする。

下は次回試してみる。

“`Bash
$ ssh-keygen -t rsa -C “(登録のメールアドレス)” -f (任意のrsaファイル名)
“`

## DevOpsでKey登録
DevOpsで「_usersSettings/keys」ページから、NewKeyボタンで作成したrsa.pubの中身をコピーする。
(改行コードを含まない様にする)

## ssh-add でrsaファイルを登録する
起動したままのターミナルから下記コマンドを実行する。

“`Bash
$ eval `ssh-agent`
Agent pid 716  #成功

$ ssh-add

元記事を表示

git で push 前の古い(最新じゃない)コミットメッセージを変更する方法

# 背景
* 古いコミットメッセージにプロジェクト名を追記したい。

# 手順
## 修正したいコミットまでの数を確認
“`bash
$ git log

# コミット番号は省略
[nest-retrospective] first commit # ← 最新のコミット(1番目)

DailyReview機能、WeeklyReview機能作成 # ← 修正したいコミット

first commit
“`

* 一番新しいコミットを1とする。
* `git rebase -i HEAD~n` の`n`には、修正したいコミットまでの数字が入る。
* 今回、最新のコミットから数えて2番目のコミットを変更したいので`n`は`2`となる。

“`bash
$ git rebase -i HEAD~2

# 最新のコミットから2つまでのコミットが表示される
pick 2520311 DailyReview機能、WeeklyReview機能作成
pick 228e7f4 [nest-retrospective] first commit
“`

* vimエディタが

元記事を表示

【NestJS】「git add .」実行時に「error: ‘nest-retrospective/’ does not have a commit checked out fatal: adding files failed」というエラーが発生した時の対処法

# エラー発生時の状況
* モノレポ方式でGit管理
* ディレクトリの階層構造
* nestjs_example
* nest-retrospective
* `nestjs_example`ディレクトリにいる状態で、`nest new`で`nest-retrospective`ディレクトリを作成後、`git.add`した時エラー発生

# エラーメッセージ
“`
error: ‘nest-retrospective/’ does not have a commit checked out
fatal: adding files failed
“`

# ファイルの詳細を確認 (隠しファイルを含む)
“`bash
$ cd nest-retrospective/
$ ls -la
total 1280
drwxr-xr-x 15 maiamea staff 480 10 12 07:40 ./
drwxr-xr-x 6 maiamea staff 192 10 12 07:37 ../
-rw-r–r– 1 ma

元記事を表示

Git よく利用するコマンド

## はじめに
gitコマンドを覚えてもちょっと時間があくとすぐに忘れるので、よく使うコマンドや、自分が現場で利用するgitの使い方をまとめてみようかと思います

## 基本操作
**リポジトリのクーロン**

“`
git clone <リポジトリのURL>
“`

**ブランチの作成**

“`
git branch <ブランチ名>
“`

**ブランチの切り替え**

“`
git checkout <ブランチ名>
“`

**修正したファイルをステージングにあげる**

“`
git add <修正したファイルのパス>
“`

**コミット**

“`
git commit -m <コミットメッセージ>
“`

**リモートリポジトリにプッシュ**

“`
git push origin <ブランチ名>
“`

## よく使うコマンド

**ブランチを作成してそのまま作成したブランチに移動する**

“`
git checkout -b <ブランチ名>
“`

**現在存在するブランチを確認**

“`
# ローカルブランチの確認
git bran

元記事を表示

Git from 最初に入れるやつら2021

# Summary
[最初に入れるやつら2021](https://qiita.com/y_marui/items/0ce03b01de0e7ea02de1)に付け足す`git`のパートが長いので分離。
Personal access tokensは微妙なので`ssh`でアクセス。
ローカルのユーザー名は`hoge`。
リモートのユーザー名は`huga`。

# `ghq`
“`~/.gitconfig
[ghq]
root = /path/to/src
“`

`/path/to/src`は、`/Users/USERNAME/src`や`C:\\Users\\USERNAME\\src`にしている。バックスラッシュをエスケープして`\\`にする必要があることに注意。`~`や`$HOME`は展開されない。

## `fzf` on Mac
“`shell:~/.zshrc
# git
# Exit with esc while choosing directory
compdef _g g
function g(){
cas

元記事を表示

【Git+GitHub】擬似チーム開発の手順

#はじめに
こんにちは。
こちらの記事では、現場に入ってからのチーム開発を想定し、1人で擬似チーム開発を行う方法を記しています。

##開発手順

* リモートリポジトリからローカルリポジトリへクローンする
* Issueの作成
* 開発用ブランチの作成
* 開発
* 差分の確認、ステージング、コミット、プッシュ
* GitHubでプルリクエスト作成、マージ
* ローカルリポジトリからリモートリポジトリへプルする
* 開発用ブランチの削除

###リモートリポジトリからローカルリポジトリへクローンする
GitHubを開いて、使用するリポジトリのURLをコピーして

“`
git clone [URL]
“`

をローカルのターミナルで実行します。

###Issueの作成
再びGitHub上で、上部のバーのIssuesに移動。
`New issue`を選択したら、タイトルとコメントを入力してIssueを作成。

###開発用ブランチの作成
開発用ブランチをローカルのターミナルで以下のコマンドを実行。

“`
git checkout -b [開発用ブランチ名]
“`

上記の

元記事を表示

【初学者奮闘録】Gitコマンド『checkout』を『checkin』に変えてほしい件

#はじめに
この記事は、独学開始から約3ヶ月の実務未経験者が作成したものです。
よって、スキルは非常に未熟なため、決して本記事の内容を鵜呑みにされないよう、ご注意ください。
(未熟な私が記事投稿を行なっている背景については、本文の最後にお伝えします。)

#Gitコマンド『checkout』を『checkin』に変えてほしい
※下記からは、あくまでも私の個人的な意見です。

Gitの学習中、以下のコマンドに出会いました。

“`
git checkout “移動先のブランチ名”
“`

このコマンドは、任意で指定したブランチへ移動する際に入力するコマンドです。
私はふと思いました。

「このコマンドを入力すれば、移動先のブランチに入っていくってことであれば、そこは『chechout』じゃなくて、『checkin』だろ!」
と。

「今いるブランチから退出する」という意味で使用しているのであれば、checkoutでも問題ないと思います。

しかし、少し時間を置けば、こうも思い始めました。
「『今いるブランチからcheckoutして、それから次のブランチへ移動する』という意味であれば、

元記事を表示

Git記事26選

#はじめに
**Git**に関して調べ問題を解決してくれた記事をストックしてきました。それを見やすいように一つの記事にまとめました。せっかくなので共有します。ここで紹介した記事のどれかにあたれば、Gitに関する基本的な問題は解決できるでしょう。

#コマンド、概念など

https://backlog.com/ja/git-tutorial/intro/01/

https://qiita.com/gold-kou/items/7f6a3b46e2781b0dd4a0

https://qiita.com/renesisu727/items/248cb9468a402c622003

https://zenn.dev/cryptobox/articles/abc13529ac0a04

https://qiita.com/ren0826jam/items/cf766a6fd43049b3cff4

https://qiita.com/shimotaroo/items/b73d896ace10894fd290

https://qiita.com/uhooi/items/c26c7c1b

元記事を表示

【個人用】Rails Tutorial -1

はじめに

本投稿は、投稿者本人の知識定着を目的として学んだことをアウトプットしているものです

Rails インストールからHerokuへのデプロイまで

開発環境→AWS Cloud9

1.Railsのインストール手順

①インストール時間を短縮するため、Rubyドキュメントの設定を追加

“`
$ echo “gem: –no-document” >> ~/.gemrc
“`
②バージョンを指定してRailsをインストール

“`
$ gem install rails -v 6.0.3
“`
③インストール及びバージョンの確認

“`
$ rails -v
Rails 6.0.3
“`
④JavaScriptソフトウェアの依存関係を管理する__Yarn__をインストール
今回はCloudIDEなので下記コードを入力し実行でOK

“`
$ source <(curl -sL https://cdn.learnenough.com/yarn_install) ```

2.アプリケーションの作成〜実行

元記事を表示

Git 基本操作

プライベートメモ

環境

– リモートリポジトリ: GitHub
– git version 2.32.0.windows.2



https://docs.google.com/presentation/d/1KwV3xsd0ywUsy8E80Gb7BCL6kFCg5rf5bbd-UbzPJNU/edit#slide=id.gf71a306e6b_0_69

元記事を表示

バイナリファイルがコンフリクトを起こした場合

## はじめに
チーム開発において、現在いるfeatureブランチに他のメンバーが更新したdevelopブランチをマージしようとしたとき、以下のようなコンフリクトが発生した。

“`bash
$ git merge develop
warning: Cannot merge binary files: .DS_Store (HEAD vs. develop)
Auto-merging .DS_Store
CONFLICT (content): Merge conflict in .DS_Store
Automatic merge failed; fix conflicts and then commit the result.
“`

ソースコードが書いてあるファイルの場合、手動で修正し、コミットすればいいが、`.DS_Store`のようなバイナリファイルの場合、コンフリクトをどのように修正するのか調べてみた。

## 方法
「**マージされるブランチ**もしくは**マージするブランチ**どちらか片方のブランチにあるファイルを全面的に採用する」というコマンドを使う。

* マージさ

元記事を表示

【初学者奮闘録】Gitのコマンド操作について復習(個人開発編)

#はじめに
この記事は、独学開始から約3ヶ月の実務未経験者が作成したものです。
よって、スキルは非常に未熟なため、決して本記事の内容を鵜呑みにされないよう、ご注意ください。
(未熟な私が記事投稿を行なっている背景については、本文の最後にお伝えします。)

#Gitを復習しようと思った理由
私が初めて自作Webアプリを開発した時にGit(Github)を使用いたしました。
しかし、どのような仕組みで動いているかをしっかりと理解せぬままに、使用しておりました。

ショボいアプリを1人で開発するのであれば、お粗末なコマンド操作で問題ありません(多分・・・)。
しかし、エンジニアとして就職したい私にとって、Gitの技術は必要不可欠です。
よって今回、私が個人開発した時に使用したGitコマンドを中心に復習します。

###参考資料
今回参考にした動画を下記に添付いたします。

Gitの流れが動画で解説されており、また図でも示されているため、非常に分かりやすいです。
まずはこの動画を視聴されることをおすすめいたし

元記事を表示

pip installをしたときにGitのsubmoduleがインストールされない問題

# はじめに
Github上で開発をしている際に開発しているmoduleとは別のRepositoryのmoduleを利用したい場合があります.
そのようなときに`submodule`を利用します.一方で,単純にsubmoduleを加えるだけだと`pip install`をした際にsubmoduleが追加されないという問題が発生します.その対処法について簡単に説明します.

参考:[How to write setup.py to include a Git repository as a dependency](https://stackoverflow.com/questions/32688688/how-to-write-setup-py-to-include-a-git-repository-as-a-dependency/)

# 問題設定
Sphere関数という関数を作成し,それをsubmoduleとして利用したいケースを想定します.
例として[submodule_practice_parent](https://github.com/nabenabe0928/submod

元記事を表示

gitは分散型っていうけど結局集中型でやってるケースの方が多いんじゃないの?

gitの勉強を始めるまでは、
**「gitは分散型だから作業者間でのやりとりができる」**
とかいうのを見て、
gitだとそーいうやり方をするのね・・・それが便利なのね・・・
となんとなく思っていたのですが

実際gitの勉強を始めてみると、結局
**中央に親リポジトリみたいなのを用意してみんなそこにプッシュする運用**
でやるのがスタンダードっぽくないですか???

それって、svnと同じじゃん

分散型のメリットって、
**作業者間でのやりとりができる**ところじゃなくて、
履歴も含めてローカルリポジトリに置いておくから、
**通信の発生が少なくて済む**

**もし消えても一か所でも残っていれば復元できる**
の方がメインってことなのかな、と思いました
***
あと、
**ローカルリポジトリがあるから影響を気にせず自由にコミットできる**
ってやつ

svnだってブランチ切っちゃえば同じじゃないですか???

私、”ローカルリポジトリ”って響きと、”自由にコミットできる”って言い方から、
てっきり**コミット先がローカルとリモートと2ヶ所あって
いろいろ試した跡はリモートに残さ

元記事を表示

Gitlab 操作メモ

##間違ってコミットしたファイルを削除する。

“`
git rm
“`

## ローカルにブランチを作って、リモートブランチを作る

`git checkout -b newBranch コピー元ブランチ`

“`
git checkout -b feature/rooting develop ←developブランチからfeature/rootingブランチを作成
git push -u origin feature/rooting ←ここでリモートブランチが作られる
“`

## 直前のコミットメッセージを修正する

“`
git commit –amend -m “修正後のメッセージ”
“`

## マージ済のブランチを確認する

“`
git branch –merged
“`

## 不要になったローカルブランチを削除する。もしくは間違えて作ったローカルブランチを削除する

“`
git branch -d localBranch
“`

## 間違えてローカルブランチからリモートリポジトリに登録したリモートブランチを削除す

元記事を表示

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

##はじめに
gitをターミナルから扱えるように学習中です。
gitに限らずではあると思うのですが、alias(エイリアス)をつけることによってコマンドを省略して打ち込めるのでその方法を記事にします。

##コマンドにエイリアスをつけてコマンドを簡単にする
エイリアスを和訳すると別名という意味があります。

例えば、私は慎重な性格なので、よく現在の状態をわかっていても“`git status“`コマンドを多用して確認作業をしまくります。

git statusぐらいすぐ打てるだろ!って思われる方多いと思いますが、めちゃくちゃ使うので“`git st“`と打つだけでgit statusできたら小さなことですがめちゃ楽です。

他にもよく使うコマンドとして、“`git checkout“`なんかもよく使います。
これも“`git co“`で実行できたらすごい楽なんですよ。

↑のようなことができるように設定していきます。

ターミナルで下記のようなコマンドで設定できます。

“`terminal
git config –global alias.<別名> <本来のコマン

元記事を表示

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 “hog

元記事を表示

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

## fetchコマンド
git fetchはリモートを追跡するブランチ(リモート追跡ブランチ)を最新化するためのコマンド。

“`git
# 例
git fetch <リモート名> <ブランチ名>

# originのmainブランチ
git fetch origin main

# origin のすべてのブランチ
git fetch origin

# origin のすべてのブランチ(ショートハンド)
git fetch
“`

## リモート追跡ブランチ?
fetchを理解するにはリモート追跡ブランチを理解する必要がある(英語ではリモートトラッキングブランチという)。
リモート追跡ブランチとは、リモーリポジトリにあるリモートブランチを追跡するローカルにあるブランチのこと。

注意する点としては、リモートのブランチではなくローカルのブランチであること。また、リモート追跡ブランチは自動的には最新化されず、fetchコマンドを使って最新化する必要がある。(追跡という名前から自動でやってくれそうだがやってくれない)

リモート追跡ブランチをコンソール上で確認するには以下のコマンド

元記事を表示

【メモ】初回コミット, pushを取り消したいとき

commit, push の取り消しコマンドの備忘録(忘備録)です。

### 初回のコミットを取り消す

“`php
git update-ref -d HEAD
“`

↑だけだとGithubなどのリモートリポジトリにはプッシュされたままなので、そちらを強制的に上書きするにはコチラ(変更点をローカルでコミットしてから行う)↓

“`php
git push -f
// または
git push -f origin main
// main となっているのは任意のブランチ名
“`

#### その他のpush取り消し方法

↓ローカルのソースの変更箇所はそのままでpushを取り消せる。

“`php
git reset –soft HEAD^
“`
ただし初回コミット・pushには通用しないのと、reset系のコマンドでは履歴を残さず修正することになるので注意。

“`php
git reset –hard HEAD^
“`
↑このコマンドでは add, commit ほかコード変更を丸っと取り消せるが、ローカルで苦労して変更した箇所も水の泡となるので注意。初

元記事を表示

OTHERカテゴリの最新記事