今さら聞けないGit 

今さら聞けないGit 

Gitの基本

## 概要
社内でGitについての勉強会がありましたので、その時学習した内容と自分で調査した内容を纏めて、アウトプットしてみました。
記事としては、Gitの基礎的な内容となっています。

## Gitとは?
ソースコードや変更履歴を管理するために使用される、代表的な分散型バージョン管理システムです。
Gitによってファイルのバージョンを管理することができるため、他の作業者にソースコードを上書きされても、簡単に元の状態に戻すことができます。
## Gitを使用するメリット
– 古いバージョンから新しいバージョンのファイルまで管理することができる
– 簡単に古いバージョンに戻すことができる
– チームでファイルや変更履歴をスムーズに共有することができる
## Gitインストール方法
### Linux
バイナリのインストーラを使用し、Linux上にGitと主な関連ツールをインストールする場合、大抵はディストリビューションに付属する基本的なパッケージ・マネジメント・ツールを使用。
`sudo yum install git-all`

UbuntuのようなDebianベースのディストリビュー

元記事を表示

最初のgitの動作を図で理解する1

# はじめに

前回の`git`の挙動について、今回はその内容を図で確認していく。

https://qiita.com/rairaii/items/261071799ee3c1facd94

# 最初のgitコマンドを用意する

最初の`git`コマンドを[ビルド](https://qiita.com/rairaii/items/261071799ee3c1facd94#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B)し、`$HOME/bin-git にコピーして、コピーした場所へのPATHを通してあると仮定する。

“`terminal:$HOME/bin-git
$ ls $HOME/bin-git
$ cat-file commit-tree init-db read-tree show-diff update-cache write-tree
$ export PATH=$PATH:$HOME

元記事を表示

git clone –depth をしたら checkout できなくなった

## 前提
重たいリポジトリを扱っていたので、–depthオプションを使ってクローンした
“`
$ git clone –depth 1 <リポジトリ>
“`
## checkout時にエラーが
“`
$ git checkout -b <ブランチ名> origin/<ブランチ名>
fatal: ‘origin/<ブランチ名>‘ is not a commit and a branch ‘<ブランチ名>‘ cannot be created from it
“`

## 原因
git configのfetch時のrefspecがmainブランチに限定されていた

**自動生成のgit config**
“`

remote.origin.url=git@github.com:Minto312/<リポジトリ名>

mainブランチに限定されている
↓ ↓
remote.origin.fetch

元記事を表示

既存のプロジェクトをリモートリポジトリにpushするまで

## GitHubでリモートリポジトリを作成
①GitHubで「new」ボタンを押下。
②Create a new repositoryと書かれた画面から操作してください。
③Repository nameを入力、ラジオボタンでpublic or privateを選択。
④Create repositoryボタンを押下すれば作成可能です。

## ローカルリポジトリへ移動
①作業ディレクトリへ移動します。
作業ディレクトリとはsrcフォルダのある階層です。
(参考までにecliplceを使用していて、workspaceにあるプロジェクトファイルの一つ下です。)

②ここからはそのディレクトリ配下でCMDを起動する。
起動方法はエクスプローラを起動して、ディレクトリパスを入れるところを一度全て消して、「cmd」と打ち込んでEnterを押してください。

③以下のコマンドを実行する。

“`ruby:3-1_gitディレクトリを作成

git init

“`

“`ruby:3-2_ローカルリポジトリへ登録

git add src ここからコメント:登録したいディレクトリ名を入力

元記事を表示

Git v-2.43.0 Fundamental 2024

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/6f6b281e-3a2a-dd1a-410b-b01ed02742a1.png)

# 1-Installing Git
**Please download according to your operating system from the following link.**

https://git-scm.com/downloads

### How to Confirm Installation
“`terminal:terminal
git –version
git version 2.43.0.windows.1
“`

# 2-Git Configuration
## user.name & user.email
**Git configuration settings with the git config command. One of the first things yo

元記事を表示

git rebase の使い所

# 変更内容の取得

例えば、`main` と `develop` ブランチがあるとします。
`main` ブランチの変更を `develop` ブランチに取り込んで、`develop` ブランチをPush、PR を作成して、マージする場合、`rebase` はとても役に立ちます。

図にすると以下のような形です。

## 使い方
現在、`main` ブランチにいると仮定して、remote にある変更内容を local に pull します。

“`zsh
git pull origin main
“`

次に、develop ブランチへ切り替えます。

“`zsh
git checkout develop
“`

ここで、`main` ブランチの変更内容を `develop` ブランチに統合します。
これにより、`develop` の変更が、`main` の最新変更の上に再配置されます。

“`zsh
git rebase main
“`

:::alert note
ここで、CONFLICT が発生した場合、コンフリクトの原因を解決し、変更内容をステージングしたら、以下

元記事を表示

最初のgitと最新のgitをソースコードと挙動から比較する

# はじめに

“Gitは最初1244行しかなかった” とのこと。手軽に読めそうな規模のソースコードなので初期の`git`の挙動とソースコードを確認する。

https://zenn.dev/uta8a/articles/b7169fd147fb31

# ソースコードと挙動を確認しての所見
最初の`git`で実装されている管理用オブジェクトやSHA1ハッシュを利用した`git`の参照の仕組みは基本的に最新の`git`と同様だ。特にSHA1ハッシュと利用することで実現するソースコード管理の詳細は興味深い。複雑になった現状の`git`のソースコードよりも、初期の`git`のソースコードで`git`の実装を学ぶもの面白いかもしれない。

https://git-scm.com/book/ja/v2/Git%E3%81%AE%E5%86%85%E5%81%B4-Git%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88

https://git-scm.com/book/ja/v2/Git%E3%81%AE%E5%86%85%E5%81

元記事を表示

Macからプッシュしようとしたら権限がなくて怒られた

# はじめに
新年早々、gitの警告にハマりました・・

※おことわり※
基本的に学習内容のアウトプットです。
初学者であるため、間違い等あればご指摘いただけますと嬉しいです。

# この記事の内容
1. エラー
2. 結論
3. 対応

# 1. エラー

クローンしたリポジトリに変更を加え、プッシュ使用しようとしたら警告が出ました。
(コミットはできているが、プッシュできない)

“`terminal
You don’t have permissions to push to “ユーザー/リポジトリ” on GitHub. Would you like to create a fork and push to it instead?

プッシュする権限がないため、forkしますか?
“`

# 2. 結論
Gitのアクセストークンの有効期限が切れていました。

**アクセストークンの確認方法**

1. 右上のアカウントからSettingsへ
1. サイドメニューからDeveloper Settingsへ
1. Personal access tokensを確認

![

元記事を表示

【未経験エンジニア】Gitを用いたチーム開発の雰囲気をざっくり掴む

# はじめに
「Gitは勉強していたはずなのに…」とならないようにするために最低限の開発フローをまとめていきます。タイトルには**ざっくり**と書いていますが、できるだけ丁寧に説明していきますので、これからエンジニアとして働く方の力に少しでもなれれば幸いです。

# 対象読者
* 実務未経験でこれからエンジニアとして働く方
* Gitを勉強中でチーム開発でどのように活用するのか雰囲気を掴みたい方

# 開発フロー
## プロジェクトのクローン
まずはプロジェクトをクローンしてきます。開発用のディレクトリを作成し、以下のコマンドを実行します。
“`shell:shell
$ git clone <リポジトリURL>
$ cd <クローンしてきたディレクトリ名>
“`

## ブランチ情報の確認・ブランチの作成
リモートリポジトリのブランチ情報を確認します。
“`shell:shell
$ git branch

元記事を表示

【備忘録】.gitignoreファイルについての説明や書き方を簡単にまとめる

あれ、どうやって書くんだっけ。とふと思ったので、備忘録がてらまとめました。

### **.gitignore について**
Git で管理されないファイルの事を言う。
ignore とは、「**無視する、黙殺する、聞きながす、気付かないふりをする**」などの意味がある。
よって、管理したくないファイルなどは、.gitignore というテキストファイルを使うのが良い。

## 書き方

:::note info
sample ディレクトリに .gitignore が置かれているとしたケース
sample
 – test_01.txt
 – test_02.txt
 – test_03.txt
:::

– ファイル名を直接指定する

“`bash
test_01.txt
“`

– ディレクトリの指定(以降にあるファイルやフォルダも全て対象となる)

“`bash
sample/
“`

– 例外を使って、test_02.txt だけは除外したい場合

“`bash
!/sample/test_02.txt
“`

– 拡張子を指定したい場合

“`bash
*.

元記事を表示

GitHubにHTTPSで接続する(Windows, Git Credential Manager)

# 1. はじめに

githubを久しぶりに利用しようと思ったのですが、HTTPSでのpushでつまづいたため、その対応を記録するついでに、設定方法をメモしておきます。

# 2. 概要
* githubのリポジトリへコードをpushする
* githubへの接続は「HTTPS」を利用し、「ssh」は使用しない
* HTTPS接続では、「トークン」を発行して接続する
* 「トークン」は端末に保存して使用する

# 3. 確認した環境
* Windows10
* Powershell
* git version 2.43.0.windows.1

# 4. GitHubのリポジトリ作成
## リポジトリ作成
Privateで作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309202/d41d5476-9924-d62d-68a8-8faf82b01aa2.png)

githubリポジトリの作成後画面
![image.png](https://qiita-image-s

元記事を表示

Git commitをテンプレート化する

## はじめに

Gitのコミットメッセージを毎回書き方が統一できていないので、統一したいなと思ってcommit templateの設定をしたので記録として残します。

# 開発環境
– Mac

# 導入

## 配置場所

“`
project
├── .github
│   └── commit_message.txt
“`

## commit_template.txtを作成する

– 参考記事のテンプレートが使いやすそうと思ったので、使用してます。

“`
# ==== Commit Messages ====

# ==== Commit Messages(Template) ====
# :emoji: #Issue番号 変更内容
# 例) :+1: #438 コメント追加
# 👍 #438 コメント追加
# ==== Prefix ====
# :fix: バグ修正
# :hotfix: クリティカルなバグ修正
# :add: 新規機能・新規ファイル追加
# :feat: feature
# :update: バグではない機能修正
# :change:

元記事を表示

bash, zshにGitのブランチ名をいい感じに表示する(サンプルあり)

未来の自分のために、設定方法といくつかサンプルを載せておこうと思います

## 設定方法
### git-prompt.sh のダウンロード

“`bash
curl -o ~/.git-prompt.sh \
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
“`

`git-prompt.sh` は、Gitのステータスをプロンプト表示できるツール(Git公式のツール)
ユーザのホームディレクトリにダウンロードします

### .bashrc の設定

“`bash
sudo vi ~/.bashrc
“`

“`bash:.bashrc
# 以下を追加
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
fi
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWSTASHSTATE=true

元記事を表示

git pushでブランチ名をいちいち書くのめんどくさい!!

# これでコマンド打つのめんどくさい。
“`
git push origin feature-1111/create_xxxx
“`

# 以下の記述で解決

“`
git push origin HEAD
“`

簡易的ですが以上です。

元記事を表示

【Eclipse + Git・GitHub + EGit】15分でできるJavaプロジェクトのバージョン管理

# はじめに
本記事ではEclipseを使って作成したプロジェクトとGit・GitHubを連携してバージョン管理を行う方法を解説します。Git・GitHubを使ってみたいけどどうすればいいのかわからないという人向けの記事となっておりますので、参考にしていただければ幸いです。

# 前提条件
– Eclipseを使ったプロジェクト作成の方法を理解している
– GitHubのアカウントが作成されており、最低限の使用方法を理解してる

# 目次

1. [EGitの導入](#egitの導入)
1. [Git・GitHubとの連携](#gitgithubとの連携)
1. [commitとpushを行う](#commitとpushを行う)
1. [参考文献](#参考文献)

# EGitの導入

Eclipseを開いて画面上部のヘルプ→Eclipseマーケットプレースをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287818/52024e69-9a2c-32bf-0a98-e5a3

元記事を表示

足もとに流れるGitコマンド

## 二つのことが明らかだった。
1. 人の作ったGitコマンド集は過剰であるか欠乏しているか、自分にとってそのどちらかだということ。
2. Gitコマンドは完成されたプロンプトであり、そこにはもう真の変化が起こりえないということ。

**つまり一度自分好みに作成すればそれは恒久的なGitコマンド集となるのだ。**

::: note warn
ごはんを10杯食べれば満腹になるのだ、というレベルのことを難しく言いかえています。
:::

### 新規git環境作成(ローカルリポジトリ作成)
“`shell
$ git init
“`

### ブランチを作成
“`shell
$ git checkout -b 作成するブランチ名
“`

### ブランチの一覧を見る
“`shell
$ git branch -a
“`

### ブランチをリモートに登録
“`shell
$ git push -u origin 作成したブランチ名
“`

### マスターにマージ
“`shell
$ git checkout master

元記事を表示

Gitの基礎をまとめてみた

# はじめに
初学者の私が備忘録としてGitの基礎コマンドについてまとめる。

GitHubが絡むものと、ローカルのGitのみでの動作のモノの差が
明示されていないサイトが多く、初学者としてはむずかしいなあと感じた。

# ローカル操作編
GitHubのことは一旦置いといて、ローカル環境での操作のコマンドを記録していく。

## ファイルを保存する関係のコマンド

### git add
ファイルの中身をインデックスに追加する
ローカルのワークツリーからローカルのステージに記録
git commitの前段のようなイメージ

“`git:よく使うやつ
git add .

全ファイルを対象に記録する場合「.」忘れずに!!!!!!
“`

https://git-scm.com/docs/git-add/ja

### git commit
追加・変更したファイルをGitに登録するためのコマンド
ローカルのステージからローカルのリポジトリに記録
git commitをする前にはgit addが必要

GitHubに他でのチーム活動のリポジトリを個人用のアカウントに複製する

### ポートフォリオ用に社外活動などのスキルアップ活動でのコードを自分のGitHubに入れる必要が出てきた。

この度[マナビDXクエスト2023](https://dxq.manabi-dx.ipa.go.jp/)に参加した内容を個人アカウントのリポジトリに複製をしたく調査しました。※データや分析結果の図は守秘義務に基づき除外済みのものを複製します。

#### GPT4に相談しつつ自分用に修正し手順をまとめました。

1.自分のアカウントでコピー先リポジトリを作成
2.コピー元のディレクトリに移動
`cd {コピー元パス}`
3.新しいリモートリポジトリを追加 ※secondaryは例です。originにすると名前が衝突してエラーとなるため好きな名前にしてください。
`git remote add secondary [新しいGitHubリポジトリのURL]`
4.リモートリポジトリを確認
`git remote -v`
5.異なるリモートにプッシュ
`git push secondary master`

#### さらにコミット履歴を削除したい場合
現在進行形でスキルアップ

【初心者】Gitの備忘録

先日Gitについて学ぶ機会がありました。
いままで正直なんとなくGitを使っていたこともありこちらで整理しておきます。
# GitとSVN
これら二つはともに、ファイルの版管理や変更履歴を管理することのできるバージョン管理システムです。
違いは一言でいうとリポジトリがどこにあるかというところにあります。

※リポジトリ  情報、成果物を格納しておくための保管場所

## SVN
SVNは集中型と呼ばれる管理方式をとっています。 この方式ではファイルと変更履歴がサーバー一つに格納されます。
– メリット
操作が簡単なこと

– デメリット
集中管理しているため各個人でのバージョン管理ができないこと

## Git
分散型と呼ばれる管理方式です。この方式では各々がローカルにリポジトリを持っており、リモートリポジトリにプッシュするということを行います。

– メリット
各個人でバージョン管理ができること
各個人がリポジトリを持っているためサーバが使えなくなっても復旧できること
– デメリット
覚えることが多いこと

現在はGitでのバージョン管理の方が主流の

ローカルリポジトリをリモートリポジトリへ登録

※前提としてリモートリポジトリが存在すること

“`bash:terminal
git init

touch .gitignore

git add .

git commit -m “first commit”

git remote add origin [リモートリポジトリのURL]

git push -u origin master

“`