今さら聞けないGit 2023年08月30日

今さら聞けないGit 2023年08月30日

【Git】git log で変更履歴を確認する方法

git log コマンドについてこんなツイートをしました。コマンドについてはわかったけど使い方がわからないと思うので、この記事では使用方法の詳細を書いています。

普段はプログラミングについて発信しています。

元記事を表示

【Git】チーム開発でのgit操作

# はじめに
参加したインターン先でチームの中でgitを使ったので実際に行った操作の流れを記録します
環境はvscodeのターミナルとgithubを使いました
※ gitを使用中に注意事項として「`mainブランチ`では直接作業はしないで」と言われた
# ブランチ作成からマージまで
## 1.ローカルブランチを更新する
* ローカルとリモートで差分のない状態にします
* この場合はローカルとリモートの`mainブランチ`を更新しています
“`git
git pull origin main
“`
## 2.ブランチの作成(ブランチを切る)
* 次にdevelopブランチを作成します
* 私たちのグループでは`作業ブランチ`から`developブランチ`に一旦プルリクを送り、開発が終わったら最終的に`developブランチ`から`mainブランチ`にプルリクを送るようにしました
* コマンド : git branch [ブランチ名]
“`git
git branch develop
“`
“`git
git branch future-view-main

元記事を表示

【Git】git diff で変更した差分を確認する方法

以前こんなツイートをしました。使い方を何となくわかる人はいるかもしれないけどこれだけじゃあまりイメージがわかないですよね。なので今回は詳細を書きましたので参考にしてみてください。

普段はプログラミングについて発信しています。

元記事を表示

【メモ】gitを使う前によくやる設定

 gitを使う前によくやる設定を、git初心者向けにメモ。
 これらをやっておくとミスが発生しにくくなって作業がしやすい。

## 目次

[1.意図しない変更が入らないための設定](#意図しない変更が入らないための設定)
[2.利便性を上げるための設定](#利便性を上げるための設定)
[3.ブランチ名と作業ツリーの状態を常に表示する](#ブランチ名と作業ツリーの状態を常に表示する)

## 意図しない変更が入らないための設定
 今どういう設定かを確認するときは`git config –list`とかで確認

“`コマンド
# パーミッションの変更をコミットに反映しない
git config –global core.filemode false

# CRLFとLFの自動変換をオフ
git config –global core.autocrlf false
git config –global user.autocrlf false

# マルチバイト文字に対する自動変換をオフ
git config –global core.quotepath false
git c

元記事を表示

git diff でファイル名のみ表示する

本当にファイル名しか要らないならこう(pipeぐらいしか使い道無さそう)

“`
$ git diff –name-only
code/2023_misumi/evacuation_simulator/Cargo.toml
code/2023_misumi/evacuation_simulator/src/data/mod.rs
code/2023_misumi/evacuation_simulator/src/main.rs
code/2023_misumi/evacuation_visualizer/src/app/layout.tsx
code/2023_misumi/evacuation_visualizer/src/app/page.tsx
code/2023_misumi/u_link-2.dat
“`

この記事を見つけた人が求めているのは多分こう(±行数付き)
“`
$ git diff –stat
code/2023_misumi/evacuation_simulator/Cargo.toml | 130 ++++++++++++++++

元記事を表示

githubのリポジトリ内の、特定のフォルダのみ手元にcloneする方法

cloneするリポジトリ「myproj」は以下のフォルダ構成になっているとする
“`
myproj
|- dir1
|- dir2
|- README.md
“`

cloneしたフォルダを置いておくディレクトリを作成、移動

“`
$ mkdir test1
$ cd test1
“`

gitの初期化、sparse-checkoutの有効化、リモートのリポジトリの登録

“`
$ git init
$ git config core.sparsecheckout true
$ git remote add origin https://github.com/testuser/myproj.git
“`

手元にcloneしたいフォルダを登録(今回はdir1とする)
“`
$ echo “dir1/*” > .git/info/sparse-checkout
“`

手元にpull
“`
$ git pull origin main
“`

最初に作ったtest1ディレクトリ内にディレクトリdir1があれば成功。

元記事を表示

プライベートリポジトリからGit for Windowsを使用してgit cloneができない

# 問題
PowerShellで`ssh -T git@github.com`が成功するのに,gitコマンドからsshを叩くと失敗する.

## 具体的には…
GitHubとsshでの通信を行うのに必要な最低限の操作を行った.
– `ssh-keygen`により`C:\Users\{User}\.ssh`以下に鍵を作成.
– 公開鍵をGitHubに登録
– .ssh以下にconfigファイルを作成
– $HOME環境変数に`C:\Users\{User}`を設定することで`ssh -T git@github.com`が成功することを確認.

その後,sshでの`git clone`や`git push`など,gitコマンドからsshを叩くようなコマンドを打ったとき,以下のようなエラーが発生する.

PS C:\Users\{user}\projects> git clone git@github.com:*****/{private_repository}.git
Cloning into ‘{private_repository}’…
The aut

元記事を表示

GitとGitHubについて概要を知る

# はじめに
GitとGitHubについての自分用のメモです

# Gitとは
バージョン管理システム
> 「どのファイルの何を」「誰が」「いつ」「何のために」変更したかを残せる

# Gitの仕組み
・変更履歴を順番に記録する、記録する際はメッセージをつける。

# GitHubとは
Gitリポジトリ(コード)のホスティングサービス
→Gitのファイルの変更履歴をオンライン上で扱ってくれる
ソーシャルコーディングの場所

:::note info
リポジトリとは:
ファイルとファイルの変更履歴を保管しておく箱のようなもの
:::

# GitHubの特徴
・プルリクエストによるコラボレーション
プルリク:GitHubにあるGitリポジトリに対して、自分が変更したコードを取り込んでもらえるようにリクエストする機能
・他チームのソフトウェアが見える
余談:Bitbucketというのもある

# ローカルリポジトリの新規作成
コマンドで新規作成
git init
何が行われているか
.gitディレクトリが作成されている→このディレクトリでファイルの管理をしてくれる

# 基本的なワークフ

元記事を表示

pre-commit&Gitフックでフォーマッターと静的コード解析ツール、テストを実行する

## はじめに
pre-commit&Gitフックでcommit前にフォーマッターと解析ツール、テストを実行させます。
アプリケーションはマイクロサービス(Rails api × Vue)です。開発はDockerを使用します。

## 環境
MacBook Pro intel 2020
macOS ventura 13.5.1
Docker 20.10.21
Docker Desktop 4.14.0 (91374)

**バックエンド**
Rails 7.0.7
ruby 3.2.2

**フロントエンド**
Node.js 18.7.1
Vue 3.3.4
npm 9.8.1

# 実行するツール
ツール自体の具体的な解説は行いません。

#### Rails

| 機能 | ツール |
|————|———-|
| テスト | RSpec |
| 静的コード解析ツール | rubocop |

#### Vue

| 機能 | ツール |
|—————-|———-

元記事を表示

GitHubアクセス時に「remote: Support for password authentication was removed on August 13, 2021.」のエラーが出てログインできない

# 背景
ようやく重い腰を上げてGitHubアカウントを作り、vscodeから初git pushをしたところ下記のエラーが発生して15分ほど詰まってしまいました

> remote: Support for password authentication was removed on August 13, 2021.

# 結論
2021年8月13日以降、GitHubリポジトリにアクセスするには、ユーザ名とパスワードではなく**アクセストークン**が必要になった。

# 手順
1. GitHubにログイン
2. 右上の自分のアイコンをクリック
3. 「Settings」をクリック
4. 左メニュー下部の「Developer settings」をクリック
5. 左メニューの「Personal access tokens」をクリック
6. 右上の「Generate new token」をクリックしてアクセストークンを作成➡Select scopes:repoと、admin:repoとdelete:repoは必須でチェックを入れる
6. vscodeのターミナルでIDとパスワードの代わりにア

元記事を表示

思い切ってハイブリットなブランチ戦略にした話

# はじめに
髙橋愛理です! :frog:
AWSサーバーレス開発のチームリーダーやってます。

現在開発中のアプリの開発フェーズが進み、かつチームの人数も段々と増えてきたのですが、
ブランチ戦略に色々と限界を感じたため、思い切った戦略を考えてみました。

# 開発概要
現在行っている開発概要は以下です。

– webアプリケーションの開発を行っている
– AWSを使用してサーバレス開発を行っている
– **dev、stg、prdの3環境**を用意
– CICDで、それぞれの環境名のブランチの変更をトリガーに、**自動デプロイするよう設定済み**
– ローカルでの動作確認が困難なため、**dev環境へデプロイしての開発や検証を行っている** 
– 総勢8名のチーム
– フロントエンド、バックエンド、インフラの3つのチームに分かれている
– それぞれ自分の担当領域外の部分を作業することもある
– **アジャイルでベンチャーチックなので柔軟にやりたい**
– ポテンシャル採用で未経験者を採用することも多い
– PLが管理業務以外に加え、設計や実装を行なうことがあり、作業負担が大きいため

元記事を表示

【Git】コミットメッセージを間違えたので取り消したい

コミットメッセージを間違った状態でenterしてしまい取り消したいシチュエーション
何度か経験したものの、毎度忘れるためメモ

`git reset –soft HEAD^`

これにて解決。

cf) git revert とは
git commit –amend とは

### 参考文献

https://qiita.com/shuntaro_tamura/items/06281261d893acf049ed

元記事を表示

【Git】ローカルで追加したコミットをpush済みのコミットとまとめたい

git rebaseは使っちゃダメなコマンドと言われるけれど、「絶対自分しかこのブランチで作業しない!」という場合に限り使ってもいいっぽい。

ちなみにgit rebaseで修正した場合、コミット番号も新しく書き変わる。つまりは強制pushが必要になるのでチームメンバーに隠れてこっそり使用はできません。(GitHubに強制pushした履歴が残るため)

## 1. git rebase -i でまとめたいコミットを指定する
“`terminal:terminal
git log
“`
で現在のコミット状況を確認後、以下のコマンドを実行する。
例:3個前のコミット履歴から修正したい場合は`git rebase -i HEAD~3`を実行

“`terminal:terminal
git rebase -i HEAD~n’
“`

## 2. pickをfixupに修正する
viモードが起動し、n個前のコミット履歴から表示される。
例:`git rebase -i HEAD~3`を実行した場合は3個前から表示される

使用するviのコマンド
| 入力キー | 内容 |
|:—

元記事を表示

GraphQL: Resource not accessible by personal access token (repository.defaultBranchRef)の解決法

# 発生したエラー
“`bash
> gh repo clone my_private_repo
GraphQL: Resource not accessible by personal access token (repository.defaultBranchRef)
“`

認証したはずなのにクローンできない

権限周りであることは分かるが, “`gh auth login“`でアカウント認証したのでprivateリポジトリもクローンできると考えていた

# 発生した状況
* 仮想マシン上(ubuntu20.04)でghをインストール
* “`gh auth login“`でトークンを貼り付け認証
* “`gh repo clone my_private_repo“`でクローン

# 解決法
画面右下のSettings→Developer Settings
![スクリーンショット 2023-08-28 1.09.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3131671/b

元記事を表示

【Git】git status で変更状況を確認する方法

以前こんなツイートをしました。git add , git commit する前に git status コマンドを使用するまではわかったけどどうやって使うのかわからないと思います。なのでこの記事では git status の詳細を説明していきます。

普段はプログラミングや、フリーランスについて発信しています。

元記事を表示

Visual StudioでPull Request時のコンフリクト解消

自分用のメモとしてまとめます。

https://learn.microsoft.com/ja-jp/visualstudio/version-control/git-resolve-conflicts?view=vs-2022

# Conflictの起き方
例えば共通で利用しているdevelopブランチがあったとして、そこからfeatureブランチを切って開発している。developブランチがすでに同じ個所が更新されている場合、featureブランチをマージするときにConflictが起きる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/9bde1b56-2082-e920-2ab9-e51367e230a9.png)

# Conflictを修正するフロー
developにマージする前に、featureブランチにdevelopブランチの修正を反映しておくことでConflictを修正できる。
![image.png](https://qiita-image-store

元記事を表示

親ブランチの変更を子ブランチへ取り込む方法

## はじめに

こんにちは、駆け出しフロントエンジニアの**柿**です。
今回は、親ブランチの変更を子ブランチへ取り込む簡単な方法について書いていきます。

## こんな事ありませんか?

PR を出すとき、**コンフリクトが起きていることが!!**
子ブランチの情報が古すぎて、うまくいかないこと、ありますよね。

そんなとき、どうすればいいのか?

そう、親ブランチの最新の状態を子ブランチに反映させてあげればいいんです。

早速手を動かしていきましょう〜!

## 親ブランチの最新状態を子ブランチに取り込む

まずは、親ブランチに移動します。

“`bash
git checkout 親ブランチ名
“`

次に、親ブランチの最新状態を取り込みます。

“`bash
git pull origin 親ブランチ名
“`

次に、子ブランチに移動します。

“`bash
git checkout 子ブランチ名
“`

子ブランチに親ブランチの状態を取り込みます。

“`bash
git merge 親ブランチ名
“`

これで、親ブランチの最新状態を子ブランチに取り込むこ

元記事を表示

【Git】Gitリポジトリを作成する手順

最近こんなツイートをしました。流れはわかるかもしれないけど詳しいやり方がわからないと思います。

普段はプログラミングや、フリーランスについて発信しています。

元記事を表示

【Git】git add で変更をステージに追加する方法

以前こんなツイートをしました。Gitは、チーム開発では必須のスキルなのでぜひ `git add` についても理解を深めていきましょう。

普段はプログラミングや、フリーランスについて発信しています。

元記事を表示

【Terminal】ターミナルをイイ感じにカスタマイズ

![giphy.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2356280/8fffdf97-a3b5-0b99-a8dd-2b26a2f82a33.gif)

## Oh My Zshインストール
**Oh My Zsh**とは、zsh(Macのデフォルトシェル)を良い感じにしてくれる便利ツールです。詳しくは[こちらの記事](https://qiita.com/Oukaria/items/6cd0706beece722cd3db)がとても参考になります!

▶︎ [公式ページ](https://ohmyz.sh/)

以下でインストールができます。
~~~bash
sh -c “$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)”
~~~

## Git補完

こちらのカスタマイズを適用すると、Gitコマンドやブランチ名などのサジェストを`Ctrl + i`で表示してくれます。コマンドやブランチのス

元記事を表示

OTHERカテゴリの最新記事