今さら聞けないGit 

今さら聞けないGit 

主要Gitコマンド まとめ

# Git コマンド解説

## 初期設定

1. **git config**
– Gitの設定を行う。ユーザー名やメールアドレスを設定する。
“`bash
git config –global user.name “Your Name”
git config –global user.email “youremail@example.com”
“`

## リポジトリ操作

2. **git init**
– 新しいGitリポジトリを初期化する。これにより、指定されたディレクトリがGitリポジトリになる。
“`bash
git init
“`

3. **git clone**
– 既存のリポジトリをクローン(コピー)する。通常はリモートリポジトリからローカルマシンにコピーする際に使用する。
“`bash
git clone https://github.com/user/repository.git
“`

## ファイル操作

4. **git add**
– ファイルをステー

元記事を表示

GitLabリポジトリをサーバー間で移行する

GitLabリポジトリ(プロジェクト)で管理しているソースコードをブランチ、コミット履歴を含めて別サーバーのGitLabに移行する作業を行ったのでその手順をまとめました。
移行方法はいくつかありますが、今回はgit cloneでmirrorオプションを使って移行する方法を採用したのでその手順を説明します。
また今回は200件弱のリポジトリを移行したため、作業の効率を上げるために一部の作業をシェルスクリプトにして実行したのでその手順も最後に説明します。

# 移行の流れ
移行の大まかな流れは以下の図のようになります。

①旧GitLabサーバーから作業端末のローカルディレクトリにclone
②remoteリポジトリを新GitLabのリポジトリに変更する
③新GitLabのリポジトリにpushする

![移行イメージ図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124648/63a7ef07-75da-26cb-6b48-1b714684c5ee.png)

# 環境情報
旧GitLabサーバー:v1

元記事を表示

複数のブランチ運用の PR で Conflict したときは GitHub web editor に注意

# はじめに
これは私が `main / develop / feature` という 3 つ以上のブランチを使い開発していた時、
GitHub の Pull Request (以下 PR) で merge しようとしたところ conflict してしまい、GitHub の Web Editor で Conflict 解消をしてしまったが故の失敗を記す。


GitHub は非常に便利で conflict した PR の場合、Resolve Conflict ボタンが出現し、Web Editor を使用して解決することができ、実際私はこれを使って解決し、merge “してしまった”。

そう、この Web Editor を正しく理解せず使ってしまい、`merge commit` をしてしまったのである。

# どんなブランチ運用?
## ブランチの意味
– `main`: 本番環境
– `develop`: 検証環境
– `feature`: 機能追加など細かい作業用

## ブランチの切り方
機能を作るためにブランチを切る: `main -> feature`
検証環境に me

元記事を表示

githubにpushするまでの流れ

# 本日のお悩み
### githubのリポジトリにソースコードをpushしたい

# 本日の処方箋
### 詳細手順と解説を入れながら書き記します。

* ### githubにてリモートリポジトリを作成する
* GitHubにログインして緑のNewボタンで新規リポジトリを作成
* リポジトリ名、詳細を入力しCreate repositoryでリポジトリを作成

* ### 対象ディレクトリへ移動する

* “`sh
$ cd sampleディレクトリ
“`

* ### 「git init」で現在いるフォルダ全体をGit管理できるようにする(初期化)
* “`sh
$ git init
“`

* ### ブランチの名前を “main” に変更。(必要な時のみでスルーしてOK)
* **現在のバージョンでは始めからmainなので基本無視**
* “`sh
$ git branch -m main
“`
**このコマンドは、以下の2つの操作をまとめて実

元記事を表示

git lfsで管理されているfileが含まれるとき

“`
$ sudo apt-get install git-lfs
$ git lfs install
“`

“`
$ git clone https://….
“`
で持ってこれるはずですが、git lfs install前に、cloneしていた場合は、

“`
$ git lfs pull
“`

で、該当ファイルを取得できます。

元記事を表示

僕とGitとエイリアス

## Gitのエイリアスを設定しよう!
SourcetreeのようなGUIを使ってる方も多いと思うのですが、私の環境だと動作が重たいことが多く使い勝手がイマイチでした。
また、そもそも操作はIDE上(ターミナル上)で完結したいというのがあります。
かといって急に慣れないコマンドを打とうとすると、あれ、このコマンドどう打つんだっけ?と毎回ググる羽目になって生産性が悪いなと。

そんな中、エイリアス設定をすれば自分が覚えやすいようにコマンドを短く設定できます。また、エイリアスを設定しておくファイルがある種コマンドのメモ代わりになるのでそこもチョコっと便利です。

## 設定方法

`.gitconfig`に以下のようにエイリアスを追記するだけで設定完了です!

“`
[alias]
co = checkout
cob = checkout -b
“`

## 私が設定してるエイリアス
### `git co`
`git checkout`
ブランチの切り替えです。

### `git cob`
`git checkout -b`
新しいブランチを作ってそのブランチに

元記事を表示

Gitのresetの種類について~間違えてコミットしちゃった場合どれ使えばいいの?~

# Gitにおけるreset(リセット)とは?
コミットする前の状態までGit上には履歴を残さずに戻すということ.

:::note warn
*revert(リバート)との違い*
どちらもコミット前の状態に戻す時に用いられますが,revertでは,Git上に戻したことについての履歴が残ります.
:::

:::note alert
これはあくまでも間違えてしてしまった時の処理です.
出るだけ使わないように正しくcommitしましょう!
特にresetはresetしたことも履歴に残らないので注意しましょう!!
:::

# resetの種類
では,次にresetの種類について見ていきましょう.
resetには以下の3種類があります.
1. Soft
1. Mixed
1. Hard

それぞれについて詳しく説明していきます

## Soft reset
最新のコミットを保持したまま,ステージングエリア(インデックス)に変更を戻す場合に使用します.これにより,最後のコミットが取り消され,その変更がステージングエリアに戻されます.
簡単にいうと,現在のローカル上にある情報を持っておきな

元記事を表示

カモノハシでもわかるGitのコマンド操作

# :white_sun_small_cloud: 自己紹介:rabbit:

はじめまして!新卒1年目の大澤です。
この記事を開いていただきありがとうございます。
今回、初めて記事を投稿するので何を書こうかたくさん迷いましたが、私自身、社内研修でGitのコマンド操作に苦戦し続けているので、今回はGitの基本について一緒に学べたらいいなと思います。
それでは、一緒にGitの勉強タイム入ります!
よろしくおねがいします(*‘∀‘)✯

# :mushroom: Gitとは..? :seedling:

「Git」とは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。このツールを使うことで、開発中のプロジェクトでの変更点を効率的に追跡し、複数の人との共同作業がスムーズになります。

Gitには、2種類のリポジトリというものがあります。それは、リモートリポジトリとローカルリポジトリです。リモートリポジトリは、専用のサーバに配置して複数人で共有するためのリポジトリです。一方、ローカルリポジトリはユーザ一人ひとりが利用するために、自分の手元のマ

元記事を表示

開発中に間違ってCommit,Push,Mergeした時の対処法[git revertとgit reset(soft mixed hardの違い)]

この記事では開発途中にプルリクエストを間違ってマージしてしまった際やmainブランチに直接Pushした際,変更内容を戻す(revert,reset)方法について記載する.

:::note warn
今回の操作は基本的なgit操作を熟知している人が行うべきである.そのため以下の記事の内容を知っていることは前提とする
https://qiita.com/tarakokko3233/items/ad7e1a1a14d3e2f10da3
:::

**そもそも…**

:::note alert
親ブランチに直接プッシュ,マージする際はプロジェクトマネージャーに相談し,勝手に親ブランチに変更を加えないようにすること
:::
:::note info
githubではプルリクエストができてマージができないようにするWriter権限がある,admin権限付与は適切な人のみにすること.
:::

# git revert git resetとは
## 事象確認
![スクリーンショット 2024-05-22 11.33.37.png](https://qiita-image-store.s3

元記事を表示

GitHubでリポジトリ作成してプッシュまでを勉強しながら進めていった

## 前提
– GitHubでリポジトリ作成済み
– EclipseでSpringプロジェクト作成済み

### 使用環境・ツール
– mac
– Finder
– ターミナル
– GitHub

## さっそくやっていきます
まず以下のような構成でフォルダを作成します。
“`
/Users/username/DevProjects
├── SpringProjects
  └── my-app-spring
“`

SpringProjectsフォルダに移動します。
“`
% cd DevProjects/SpringProjects/my-app-spring
“`

git initします。
“`
% git init
Initialized empty Git repository in /Users/username/DevProjects/SpringProjects/my-app-spring/.git/
“`

ローカルに.gitフォルダが作成されました。
“`
% ls -A
.classpath .mvn HELP.md pom.xml
.gi

元記事を表示

Git diffを用いた納品差分ファイルの作成方法を解説

gitを用いてソース運用を行っていく中で、とある地点から変更があったものだけを抽出して納品したい場合、git diffコマンド有効的です。

本記事では、git diff コマンドを用いた差分ファイル作成方法を詳しく解説します。

“`
git archive コミットID `git diff –name-only 新しいコミットID 古いコミットID –diff-filter=d` -o ファイル名.zip
“`

このgitコマンドでは、古いコミットID から 新しいコミットID までの差分(変更点)を抽出し、zipファイルで保存するコマンドです。

git archiveコマンドは、指定されたコミット、ブランチ、ツリーなどのGit Refからアーカイブファイルを作成します。

–diff-filter=dは、コミット間で削除されたファイルを除外するコマンドです。これがないと、削除したファイルも差分ファイルとして格納されて、削除したいのに間違ってサーバーにアップロードしてしまった、なんてことが発生します。

もし先方側でファイルをFTPなどで直接アップデートするような運用

元記事を表示

【便利!!】現在いるブランチをコピペする

# 概要
gitを触っていると
– 「今ってどのブランチにいるんだっけ?」
– 「ブランチ名を毎回タイピングするのってめんどくさい!」

となること、多くありませんか?

主観ですがBacklogやgithub Projectsのチケット番号をブランチ名にしているプロジェクトでは、特に多い思います。
`例: task/123, feature/123など`

あとは機能名をブランチ名に設定する場合も同様です。
`例: task/add_XXXX_and_YYYYなど`

そこでgitコマンドで、現在いるブランチ名を取得、あわよくばコピペできないかなと思ってコマンドを作成しました!
個人的にとても使っているコマンドなので、ぜひ使ってみてください!

# 結論
githubのconfigファイルにエイリアスを設定する。
“`
[alias]
co(任意のコマンド名) = “!f() { git branch –show-current | tr -d ‘\n’ | pbcopy; echo ‘Current branch name copied to clipboard.’; }

元記事を表示

Git不慣れ勢を束ねて安全なチーム開発をするメモ

# git操作をVScode上で行い、開発フローをさっさと動かしたい
## ■ 本稿について
:::note
本稿は当初チーム開発時のメンバー向けにまとめたものです。
ある程度、端折っていた背景などを記載しました。
:::

git初心者同士でのチーム開発において、git操作を詳しく知らないメンバーも含め安全に行う必要がありました。しかし、開発期間はごくわずか…この状況を回避するために、下記の対応をとりました。
– **Gitコマンドの基礎的な内容を理解する(私)**
– **各種操作をGUI上で完結させる拡張機能を色々と導入する**
– **シンプルな開発フロー(Github flow)を採用し、コマンド実行に相当する操作を限定する**
– **各操作をGUI上での操作に置き換え、チームメンバーに教える**
本稿はその際の、コマンドやGUI操作に関するメモをまとめたものになります。

こういった取り組みのおかげか、チームの開発をすんなりフローに乗せることができました。

:::note warn
※ Gitコマンドの理解はしている人は不測の事

featureブランチに最新のmainが取り込まれているかチェックする方法

# はじめに

こちらの記事では、Git コマンドを使って feature ブランチに最新の main ブランチの変更が取り込まれているかチェックする方法を図解入りで書きます。

# 背景

関わっているプロジェクトで CloudBuild を使った CICD を構成していました。開発フローは main ブランチ から feature ブランチを切って開発を進めています。

そこで、staging 環境上で QA をするために、feature ブランチを指定してデプロイすることがありました。
しかし、最新の main ブランチの内容を feature ブランチに取り込んでいないと、予期せぬ不具合が起きることがあり、feature ブランチを常に Update branch(=最新の main ブランチを取り込む)する必要がありました。

GitHub 上では、main ブランチに保護ルールを設定することで、feature ブランチが最新の main ブランチの変更を取り込んでいないと main ブランチにマージできないように設定することはできます。しかし、ブランチ指定デプロイをする場

【週末おそうじ】ローカルブランチをサクッと削除したい

# なにこれ
ローカルブランチがたくさん溜まってきたので削除したいなあと思って調べたコマンドをまとめた個人的なメモ。

# 特定のブランチを残して他の不要なブランチを削除する
### 残したいブランチが1つの場合
`develop` ブランチを残したい場合のコマンドです。
“`zsh
git branch | grep -v “develop” | xargs git branch -d
“`

### 残したいブランチが複数ある場合
`master` と `develop` ブランチを残したい場合のコマンドです。
“`zsh
git branch | grep -v -e “master” -e “develop” | xargs git branch -d
“`

# 全部のローカルブランチを削除する
おそらくこのケースはあまりないように思いますが、とりあえずコマンドを書き残します。
“`zsh
git branch | xargs git branch -d
“`

# マージされていないブランチを強制的に削除する
`-d` オプションを `-D` に変更すると

ブランチを削除してやり直したい時のコマンド手順

# はじめに
よく使うブランチ関係のコマンドをアウトプットしています
初心者なので、誤りありましたら教えていただけると嬉しいです😃
統合ブランチをdevelop、作業ブランチをfeatureとしています

# ローカルブランチの削除方法
リモートにプッシュしていない場合、ローカルブランチを削除するだけでやり直すことができます

### 手順
現在作業ブランチにいる場合、作業ブランチを削除することができません
そのため、一旦削除対象以外のブランチに切り替えます
(mainでもdevelopでもいいです)

・ブランチの切り替え
“`
$ git checkout develop
“`

・作業ブランチを削除
“`
$ git branch -D ブランチ名
“`

作業ブランチでコミットをしていなかった場合に、
ブランチを削除したにも関わらず作業した内容が残っている場合があります
そういう時には、削除対象以外のブランチに切り替えた時にターミナルに以下が出力されているかと思います

“`
ec2-user:~/environment/アプリ名 (feature/作業名) $ gi

git stash の使い方の紹介

現在、feature/a branchで開発を進めていて、同僚がfeature/b branchでcode reviewを必要とするpull requestを送ってきたとします。まだコミットしていないテスト中のコードがあり、それはまだ実験中のためです。
この状況では、次のように使えます:
“`bash
git stash
“`
一時的に変更を保存します。
あるいは、次の方法も使えます:
“`bash
git stash push -m “add feature A”
“`
後で識別しやすくするために、このスタッシュに説明を追加します。
コマンドを実行すると、コードは前のコミットの状態に戻ります。

その後、スタッシュしたコードを復元したい場合は、まず次のコマンドを使用します:
“`bash
git stash list
“`
どのスタッシュが利用可能かを確認します。
その後、特定のスタッシュをポップせずに復元したい場合は、次のコマンドを使用します:
“`bash
git stash apply 0
“`
(番号はスタッシュを適用する順番を表し、0 が最新、以降の番号が過

ChromeOS Flexで無料のGitクライアントを使う

:::note warn
この記事は非常にニッチな内容を扱っています。
多くの方には役に立たない記事だと思います。
:::

:::note warn
投稿者は初心者です。
Gitもあんまりわかっておらず、できたことを記事にしてるだけです。
:::

## 0.はじめに

私は、非エンジニアの初心者でドシロウトでしかも貧乏です。

貧乏なので、Windows11非対応のPCを主に利用しており、そのためOSもChromeOS Flexを利用しています。

https://chromeenterprise.google/intl/ja_jp/os/chromeosflex/

Gitリポジトリホスティングは、主にBitbucketを利用しています。

https://bitbucket.org/

Gitクライアントは、以前は、Windows10でSourcetreeを利用していました

https://www.sourcetreeapp.com/

少し前にWindows10からChromeOS Flexを個人用のメインOSにしてから一番困っていたのがGitクライアントの問題でした。

gitで変更内容が別ブランチに同時反映された?!

# はじめに
最近gitでいろいろとやらかしている気がするんですが、今回はその1つを共有しておきたいと思います。

# 問題
リポジトリを編集した後に、自分が切ったすべてのブランチに内容が変更されてしまう

# 原因
**コミットしてなかったから**
コミットせずにブランチを切り替えるとそうなるらしいです。

# 終わりに
ここまで短い記事は書いたことないかもです笑

Git GUIツールについて

こんにちは!
株式会社OGIX クライアントエンジニアのY.Kです!
(弊社については最後に紹介があるのでぜひ見てください)

みなさんはGit GUIツールを使用していますか?
私はGit触り始めての頃にコマンドラインツールでのGit操作していた所、先輩にGit GUIツールの使用を勧められました。
最初はコマンドラインでの操作と比べて段違いで操作しやすい!!!と感動していました。
ですが最近になってGit GUIツールでのできないこと、ツールならではのデメリットなどに気が付いたのでGit GUIツールについて簡単に紹介しようと思います。

## Git GUIとは?
GUI(グラフィカルユーザーインターフェース)は、ユーザーが直感的に操作できるグラフィカルなインターフェースのこと。
マウスやタッチパネルなどの入力デバイスを用いて、ウィンドウやアイコン、メニューなどを操作でコンピュータプログラムの機能を利用できるインタフェースを指します。

## Git GUIツールのメリット
#### 1.視覚的に操作ができる
コマンドラインツールでは、コマンドを覚えたり、入力することが必要です