今さら聞けないGit 

今さら聞けないGit 

Git・GitHubでバージョン管理する方法

# Git・GitHubでバージョン管理する事前準備の手順

– Git・GitHubでバージョン管理するための手順について、注意点も含めて記事にまとめておきます。

## Git管理下に置くための事前準備の手順

– 以下に手順を記述していきます。

### `GitHub`で新しいリポジトリ(任意の名前)を作成する

1. Githubにログインしてマイページに進み`repositories`メニューに進む
1. `New`ボタンから、リポジトリ新規作成画面`Create a new repository`に進む
1. `Repository name`の箇所に`(任意のリポジトリ名)`を入力する
1. `Add README.md`にチェックして、READMEを自動生成させる。(※後に、mainブランチの作成などを勝手に行ってくれるので便利)
1. その他の設定は特にいじらなくてもOK(外部公開したくない場合は`private`を選択)
1. `Create repository`ボタンでリポジトリ作成完了

### 作成したリモートリポジトリを任意のディレクトリ直下に`

元記事を表示

効率の良いソートアルゴリズム クイックソートとマージソートをGoで実装

# ソートアルゴリズムは効率良くできるか

前回基本ソートアルゴリズムの解説をした。

その時の計算量はO(n ^ 2)であり、基本的には効率は良くない。

ではもっと効率の良いアルゴリズムはあるか。

実際ある。

しかし少し難しくなるのでこの記事で理解を深めてほしい。

## 再帰

ソートアルゴリズムの解説に入る前に再帰の説明をさせてほしい。

この後に紹介するアルゴリズムではこの再帰を用いて効率性を上げている。

さて、再帰とは「あるプロシージャの処理の中でそのプロシージャ自身を呼ぶこと」を指します。

これによって特定の問題をより小さなサブ問題に分割して解決するための手法となる。

再帰はループを使用する代わりに、特定のタスクを繰り返し実行するためによく使用される。

再帰の基本的なパターンは次のようになる。

基本ケース:再帰の終了条件。これがないと、関数は無限に自分自身を呼び出し続け、スタックオーバーフローを引き起こします。

再帰ケース:関数が自分自身を呼び出すケース。ここでは、問題をより小さなサブ問題に分割します。

例えば再帰を使用して階乗を計算するGoのコードを見

元記事を表示

【Git】blameでバグの犯人探しをする

# はじめに
小ネタです。犯人探しをしたいときにお使いください。

# 犯人探し

`git blame -n ファイル名`で該当ファイルに絞って検索する事ができます。
`-n`は行数を表示させるコマンドです。

“`terminal
git blame -n index.html
^f541b32 1 (username 2023-12-20 19:15:14 +0900 1)
^f541b32 2 (username 2023-12-20 19:15:14 +0900 2)
^f541b32 3 (username 2023-12-20 19:15:14 +0900 3)
^f541b32 4 (username 2023-12-20 19:15:14 +0900 4)
^f541b32 5 (username 2023-12-20 19:15:14 +0900 5)

元記事を表示

【git】force pushでリモートの歴史を変える

:::note warn
リモートの歴史を変えることは基本的に推奨されていません。個人開発であれば問題は少ないですが、チーム開発のリポジトリなどでは極力避けましょう
:::

## gitによる歴史のすり合わせ

大前提の話をします。

gitにリモートリポジトリを紐付けると、その時点で「ローカルのgitの歴史」と「リポートのgitの歴史」が出来上がります。基本的にローカルで変更を行うので、その変更をリモートに反映して、歴史を擦り合わせるのが`git push`のお仕事というわけです。

逆に`git pull`はリモート側の変更を取り込んで歴史を擦り合わせるのがお仕事です。

**ここで問題です**

リモート側に変更があり、ローカル側で`pull`をすべき状態で`push`を行うとどうなるでしょうか。

**A. 怒られる**

答えは怒られるです。

gitがリモートの歴史を見て「ん、歴史的にはローカルのほうが遅れてるな。じゃあ`push`はおかしい」と意見しているわけですね。

“`bash
! [rejected] main -> main (non-fas

元記事を表示

プログラミングスクールと実務を経て感じたこと

# はじめに
この記事は[WEMEX株式会社 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/wemex) 20日目の記事です

23卒の新卒エンジニアとして入社した私は、6月から10月にかけて、プログラミングスクールでの研修と実務でのOJT(On-the-Job Training)を並行して経験しました。この記事ではプログラミングスクールでの学びと実務経験を基に、新人エンジニアとして感じたことを共有したいと思います。

なんらかの形でみなさまのお役に立てれば幸いです。

# 筆者の開発歴について
背景として私の入社以前の開発歴について述べたいと思います。

私が学生時代に触れていた言語は主にPythonとC++です。

Pythonでは主に研究用のコードを書いていました。
研究室の専攻が自然言語処理だったので、コードとしても自然言語処理や機械学習等の内容がメインでした。

C++は所属の研究室とは別に行っていた、流体シミュレーションソフトのR&Dや可視化ソフトの開発(デスクトップアプリ)に使用していました。

元記事を表示

git store username

git config –global credential.helper store

元記事を表示

[GitHub/GitLab] GitHubとGitLabの違いについて

### 参考リンク
– [GitHubとGitLabの違いをわかりやすく解説](https://www.kagoya.jp/howto/rentalserver/webtrend/github_gitlab/)

元記事を表示

【Git】とりあえずこれだけやっておけばGitで悩まない

![Git-Logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696254/3e14f772-cd70-8203-f86b-ea6fc1e194e4.png)

# はじめに
筆者は、未経験からWeb系エンジニアになって2ヶ月目の人間だ。Gitの理解に非常に苦しんだので、自分自身のため、またこれから同じ思いをするかもしれない方々のために、これを読めばGit操作に困らない記事を作成した。

# 対象レベル
– これからエンジニア転職を考えている方
– 駆け出しエンジニアの方
– もう一度、基礎的なところを学びたい方
– 何となく読んでみたいという方
※PCはMac推奨

## 記事内容
– Gitの基本的な操作(add, commit, push, pull, merge, clone等)
– Gitの応用的な操作(rebase, diff, stash)

## Gitとは?
バージョン管理システムの一つで「誰が、いつ、何を」変更したのかを管理する

## バージョン管理が必要な理由
・変更履歴

元記事を表示

【Git】push前にsquashで複数のcommitをまとめる

# はじめに
`push`する前に、`commit`分けすぎてまとめてから`push`したいときによく使う`git rebase`を使った`squash(スカッシュ)`について手順をまとめます。

ちなみに`squash(スカッシュ)` は「押しつぶす」とか「ぺちゃんこにする」という意味だそうです。
# スカッシュの手順

現状このようなコミットがあったとします。
今回は`[add]fuga`、`[add]hoge`、`[add]foobar`のコミットをまとめます。

“`terminal
user1@user1noMacBook-Pro rabase-test % git log –oneline -5
04183ba (HEAD -> develop) [add]fuga
c55e5e9 [add]hoge
1e57b68 [add]foobar
af7104c Third
e0b30cc Second
“`

`git rebase -i`コマンドを実行すると`vim`に切り替わり、下記のような画面をインタラクティブモードで開けるようになります。

コミットが古い順で表示

元記事を表示

Githubコマンド一覧

Github コマンド一覧
コマンド 用途
git init リポジトリの初期化
このディレクトリ以下を管理するリポジトリデータが格納される。
git status 現在のgitリポジトリーの状態を表示する。
ブランチの確認などを行う。
またファイルを新規作成など何らか変化を加えたあと
#Untracked files 以下に表示される
git add 変化を加えたファイルをgitリポジトリーの管理下に置くためにステージ領域と呼ばれる場所に登録する。コミットするの一時領域である。
-A:全てのファイルをステージ領域に置く
git comm

Gitでブランチを切り忘れて作業してしまった時の対処法

# はじめに
Gitでコード管理する際に、作業ブランチに移動するのを忘れてしまった場合の対処法について書いていこうと思います。
こちらは、commitする前になります。

作業ブランチにて作業するのが正しいところを、mainブランチでそのまま作業してしまった場合を想定しています。

## 状況の確認
“`
$ git status
“`

![スクリーンショット 2023-12-18 21.19.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3335067/b570f7a0-acd1-95ec-9106-cc819310463c.png)
こちらで確認するとmainブランチで作業しているのが確認できます。

なのでこちらを作業ブランチに移動していきたいと思います。

### mainブランチの作業内容を一時的に退避させる
“`
$ git stash save “メッセージ”
“`

![スクリーンショット 2023-12-18 21.20.46.png](https://qiita-i

git の初期設定(メモ)

“`bash
# 基本的な設定
## 自分の情報
git config –global user.name “User Name”
git config –global user.email “user.name@example.com”

## エイリアス
git config –global alias.co “checkout”
git config –global alias.b “branch”
git config –global alias.bd “branch -d”
git config –global alias.f “fetch -p”
git config –global alias.s “status”
git config –global alias.log1 “log –oneline –graph”
git config –global alias.log2 “log –graph –date-order -C -M –pretty=format:’%C(bold blue)%h%C(reset) %C(gree

【Gitクライアント Fork】基本的なコマンドの使い方

前日の記事は[ariaki](https://qiita.com/ariaki)さんの[「古のPHP5.6プロジェクトをdeployerでデプロイする」](https://qiita.com/ariaki/items/6d03809957ddbdad964d)でした。

# はじめに
みなさん「Git」の操作は「CUI」ですか?「GUI」ですか?

私のGitの使い始めは「コマンドの意味を理解する」のが大事と考え、「CUI」操作だったのですが、
ある程度理解してきて最近は「Fork」というGitクライアント(GUI)を併用しています。
「差分、ツリー、ブランチ一覧」などはこっちが見やすいからです。

また、なぜ併用しているかというと「Fork」の使い方を一部しか知らないからです。
そのためこの記事を通して自分自身「Fork」の使い方を知っていきたいと思います。

# Forkについて
上記にも記載しましたが、Git クライアントツールです。

インストールについてはこちらから行います。
https://fork.dev/
Mac、Windowsと分かれているためご自身の環境に合わせて

最短でgit difftoolを設定する

gitで何も設定せずにdifftoolを実行すると、ゴニョゴニョと文句を言われます。
そして、どうすれば良いか検索して出てくる設定方法はどうもゴニョゴニョと冗長なようです。

とりあえずmeldなら`.gitconfig`に以下のように書き足せば、いけます。
“`
[diff]
tool = meld
[difftool]
prompt = false
“`
たぶんWinMergeとかでも同じのはず。

Git 特定のコミットを取り込む(cherry-pick) と コミットをまとめてマージ(merge –squash)

## 特定のコミットだけを取り込みたい!(cherry-pick)
git cherry-pick は特定のコミットのみを取り込みたいときに使用します。
![スクリーンショット 2023-12-18 10.16.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3655825/507efc18-ed99-3440-a04a-83e064ce19b8.png)
上の図で自分がブランチ2(作業ブランチ)で複数コミットをして、そのうちのコミットA,Bのみを親ブランチであるブランチ1に含ませたいとき、git cherry-pickが有効です。

差分を取り込みたいブランチ(図の場合ブランチ1)に移動し、取り込みたいコミット番号を指定してcherry-pickをします。(オレンジはコミット番号です)
“`

git checkout ブランチ1
git cherry-pick abcd0001 abcd0002

“`
これだけで指定したコミットを取り込むことができます。また、このときログを見ると新

Lookerから始めるGit:バージョン管理

この投稿は、2023年JINSのアドベントカレンダー18日目の記事です。

## 自己紹介
株式会社ジンズのITデジタル部ほりお(@mhori0)です。
主にデータエンジニアみたいなことをやっています。

## 紹介すること
開発を行うと当たり前のようにGitが使われていますがローカルだけで開発される方の中にはまだGit手を出していないんだよなーって方がいるかと思っています。(私も手を出すのは大分遅かったうちの一人です。)
Lookerではバージョン管理を良い感じにする仕組みが内包されているので、これをとっかかりにGitに慣れていくのもありなのでは?ってことで書いてみようと思います。

## Lookerとは
LookerはBIツールの一つでデータベースを持たず、直接データベースにアクセスしてデータ分析を行うBIサービスです。LookMLという言語を使ってデータ定義を行いデータガバナンス機能を有しています。
“`
Google が世界中の情報を整理して、世界中の人々がアクセスできて使えるようにしていることと同様に、Looker はビジネスデータに対して同じことを行い、分析情報を活用し

【git駆け出し向け】これだけ知っとけばなんとかなる(と思っている)gitコマンドチートシート

先に謝罪:アドベントカレンダーに間に合わせるため、多少雑になってしまいました。必要に応じて加筆修正入れます

gitに出会って7年くらい経ちましたが、「これだけ知っておけば90%くらいの状況においては困らなくね?」と感じているコマンドについて整理しておく。

gitコマンド多すぎ問題があるので、どこまで知れば取り急ぎ、9割程度の場合は困らないかにフォーカスします。
これだけは呼吸をするように命令すべし(と思っているものです)。

※概要理解のため、細かいところを省いたりしていますが、細かい部分については実践で学ぶのが最も良いと思うので、それぞれのプロジェクトなどで実践してください。

### 説明すること

– コマンドで何がおきるかの概要

### 説明しないこと

– 厳密なブランチの変化
– commit履歴の変化

# git clone

GithubやGitLabで管理されているリモートリポジトリを、ローカルリポジトリとして、文字通りクローン(複製を作る)コマンド。
開発などを開始する際に、まず初めに実行するコマンド。

![gitclone.png](https://

Gitコーナー 【リモートとローカルを繋げる】 つまり、GitHubのリモートリポジトリと開発環境下のファイル/フォルダを繋げる

## 絶対的なこと

2つ事前にやることがある

①ローカルにて、git init
②GitHubに、リモートリポジトリの作成

## その後

①git remoteで、繋げる
②git pushで、反映させる

## 全ては、

[神様](https://qiita.com/Futo_Horio/items/4d669f695680bc13d5fa)

のおかげでした。

git add . や git add -A や git add -a

## git add .

管理されている全ファイル中、カレントディレクトリ以下の変更されたファイルを全て

## git add -A

管理されている全ファイルの中で、全ての変更されたファイルを全て

## git add -a

-aオプションは存在しない

local環境でconflictを解消する方法

## はじめに
エンジニアに転職して3ヶ月経ちましたが、プルリクエスト(以下PR)をmergeするときはいまだに緊張します。特に初めてconflictが起きたときは、⚠️マークが表示されているのを見て、何かやらかしてしまったのではないかと焦りました…取り返しがつかないようなミスはしたくないですよね🥺
本日は、PRをmergeするときにConflictが起きた時の解消方法を教えていただいたので紹介します。Conflictが起きても、焦らずに対処できるようになりましょう!

## 背景
作業中のfeatureブランチからdevelopにPRを出している。
GitHub上でPRをmergeしようとしたところ、conflictが発生していることがわかった。
local環境でconflictを解消する方法を先輩から教わった。

## PRをmergeするときにlocalでconflictを解消する手順
### 1. developブランチをpull
まずは、developブランチをpullして最新の状態にしておきましょう。
“`terminal
git checkout develop
git