今さら聞けないGit 2021年01月27日

今さら聞けないGit 2021年01月27日

【Git】Gitチートシート

[【Git】作業ブランチに最新のmasterを反映させる方法!](https://mizukazu.com/%E3%80%90git%E3%80%91%E4%BD%9C%E6%A5%AD%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%81%AB%E6%9C%80%E6%96%B0%E3%81%AEmaster%E3%82%92%E5%8F%8D%E6%98%A0%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95%EF%BC%81/)

[コンフリクトしたのでrebaseしたい](https://qiita.com/zizynonno/items/fcf066386bcb7a6610b0)

元記事を表示

【Gitの前に知っておかないといけないこと(小学生でも分かる解説)】

#Git とは

「Git」(ギット)という単語を使うだけで、エンジニアっぽくなる。(気がする)

じゃあ、Gitって何?

結論から、

Gitとは、`「作ったプログラムの履歴を残したり、そこに戻ったりするやつ」`

#CLI(=CUI)、GUI とは

そのGitの前に知っておくべき、いや、知っておかなければ進めないものがある。

それが、CLI(CUIとも言われる)とGUI。
英語3文字攻撃だけど、たいしたことじゃない。

**・CLI(コマンドラインインターフェイス):裏
・GUI(グラフィカルユーザインターフェイス):表**

以上。いや、例くらい出しておく。

**・CLI(コマンドラインインターフェイス):黒い画面(ターミナル)に呪文を打ち込む
・GUI(グラフィカルユーザインターフェイス):(たぶん今やってる)マウスやタッチパッドで画面を動かしたり、タッチしたりする**

へー。で?

で、非常に大変残念ながら、
「Git」は「CLI」の方ですよ。という話。

#Gitはどう使う?

それじゃあ、Gitは実際にどうやって使うのか。

上のCLIのとこで出てきた「ターミ

元記事を表示

【git】コンフリクト時に使うコマンド(fetch, –prune, merge)についてのまとめ

私は現在、オンラインプログラミングスクール「やんばるエキスパート」で、4人チームで共同開発を行っています。

## 開発現状
ブランチは開発用のdevelopブランチをメインとしており、自分で作業する時は、developブランチから新しい作業ブランチを切って作業しています(ここでは仮に `feature/hoge_fuga` とします)。そして、コンフリクトの発生時にスクールの教材では、

“`
git branch で作業ブランチにいることを確認後
git fetch –prune
git merge origin/develop
“`
を行うように記載されており、「fetchってなに?」「–pruneってなに?」「merge origin/developって何で行うの?」と疑問になったので、自分で調べてまとめてみました。

## git fetch –pruneとは?
“`
git fetch
“`
が、リモートリポジトリから最新情報を取ってくるコマンドで、`–prune`オプションをつけることで、自動的にリモートリポジトリで消されたリポジトリを削除してから、ロー

元記事を表示

きっとgit使えないとbad③

#はじめに
引き続き、少しずつ調べて実践しているけど、細かいところがわからないし、ミスったらどうしようという不安を感じながらコマンドを入力している、今日この頃です。

↓前回までの投稿
[きっとgit使えないとbad
](https://qiita.com/TerToEer_sho/items/8e5f9294c8d0cf936207)[きっとgit使えないとbad②
](https://qiita.com/TerToEer_sho/items/6dc482f12b1e261ed3f4)

##リモートの変更をローカルに反映させる
“`bash
% git pull
“`
##取り消す系
###addを取り消す

“`bash

% git add reset
“`

###特定のaddを取り消す
“`bash

% git add reset ファイル名(pathで指定)
“`

###直前のコミットメッセージを修正する
“`bash
% git commit –amend “修正後のメッセージ”
“`

元記事を表示

Gitリポジトリのコード量を知る

# 方法
コマンドラインツール「cloc」を使用。
Mac、Windows共に利用可能。ここではMac。

# インストール
`$ brew install cloc`

# 使い方
## 基本
コマンドライン上に出力
`$ cloc 対象のディレクトリまたはファイル`

## CSVファイルに出力
`$ cloc 対象のディレクトリまたはファイル –csv –out=”出力ファイル名.csv”`

# 参考
– [AlDanial/cloc – GitHub](https://github.com/AlDanial/cloc)
– [ステップ数のカウントツール「cloc」 | デーコムラボ](https://www.dcom-web.co.jp/lab/tool/cloc)

元記事を表示

Git でやらかした時の対処法

ここで紹介する方法は非常に危険なため、100%自分のブランチでない限りは使わないことをお勧めします。

## ローカルを任意のコミットまで戻す

“`shell
git reset –hard <コミットハッシュ値>
“`

## 任意のコミットまで戻したローカルの変更をリモートに反映させる

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

元記事を表示

【Git】ローカルのブランチ名を変更したいとき

“`
$ git branch -m <新しいブランチ名>
“`

これで変更できる。

元記事を表示

GitHubでよくあるミスの対処法をまとめてみた

プログラミングを始めたての私のような人はついついmasterブランチでコードを書き始めてしまうものです。
この記事は、GitHubでソース管理していて思わずやらかしてしまったときの対処法を共有しています。
**ターミナルでのコマンドではなくGitHub Desktopアプリで作業しています。**

# masterブランチでコードを誤って記述してしまった場合
ブランチを作成せずにmasterのままコードを書いてしまったことありませんか。
大丈夫です。新しいブランチにそれまでのコードを引き継げます。
### 具体的な手順
#####①新しいブランチを作成
とりあえず新しいブランチを作りましょう。

#####②「Bring my changes to」を選択
①で新しいブランチを作ると2択を迫られますので、「Bring my changes to」を選択。
これは、①で作った新しいブランチにそれまでのコードを引き継ぐという選択肢になります。
これでmasterでコードを書き始めてしまっても取り返しが付きます:relieved:

#誤ったコミットをしてしまった場合
コミットしたくないのに

元記事を表示

MacOS CatalinaでJenkins経由でのGit LFS Error問題の解消

# はじめに
Mac CatalinaでJenkinsの構築をした際にハマったポイントとして、
Git LFSが通らない問題があったので忘却録です。
Error内容 : `stderr: git-lfs filter-process: git-lfs: command not found`

Catalinaから`root`ユーザーでもアクセス権を得ることができないシステム整合性保護`SIP`(System Integrity Protection)という機能が邪魔をしていた。
これを解決する為にはMacのリカバリーモードで起動しSIPの無効化をする必要がある。

## リカバリーモードで起動
①、電源をOFF
②、`cmd + R`を押下しながら電源ON
③、該当のユーザーでログイン
④、画面上部のメニューバーの`ユーティリティ`の`ターミナル`を選択
⑤、`csrutil disable`を入力

“` 成功し、SIPが無効化.
Successfully disabled System Integrity Protection. Please restart the machin

元記事を表示

gitの変更差分をアーカイブ化する方法

ある時点のコミットと最新のコミットの差分ファイルを取得したいとき。

“`
git archive –format=zip HEAD $(git diff –diff-filter=d –name-only {コミットID} HEAD) -o archive.zip
“`

元記事を表示

【git初心者】リポジトリ整理備忘録

なんとなくリモートリポジトリにプッシュし続けているけど、バージョンをもっと扱いやすく管理したい。
初心者なりに方法を考えて実践した備忘録です。

状況

・同じブランチにプッシュし続けている
・リポジトリ内にブランチが乱立
・github使用
・とりあえず何でもコミット&プッシュしている
・プッシュの時”サイズが大きい”とwarningを見かける

色々問題がありました。

問題点1:同じブランチにプッシュし続けている

###結論:用途を分けてブランチを使う

**こんな風に思っていました**
>余計なことをしてエラーを見たくなくて、ひたすらプッシュしかしていない。
でもそれって同じブランチにすごい数のバージョンが存在していて、いざ必要なものを必要な場所から取り出したい時にはとても見つけづらいのでは、、、?

**打開策:ブランチを切る**
別のブランチを作って、そこにプッシュすることにしました。
これでとりあえず「すごい数のバージョン」からは逃れられるはず。

“`
git checkout -b ブランチ名
“`
プッシュ先のリポジトリ指定を忘れずに。プッシュの際に

元記事を表示

git fetchとmerge、pullの関係をわかりやすく説明する【Gitコマンド解説②】

Gitコマンドはたくさんありますよね。git addとcommit,pushなどは良く使うコマンドだからわかるけど、

**fetch**、**merge**、**pull**になると「どういう意味かわからない…」という方は多いのではないでしょうか。

“`
git fetch
git merge
git pull
“`

今日は3つのGitコマンドについて、できるだけわかりやすく解説していきます。

そもそも**git addとcommit,pushがわからない!**という方は、こちらの記事を読んでくださいね。
↓↓↓
[git addとcommit、pushの関係をわかりやすく説明する【Gitコマンド解説①】](https://qiita.com/atsushi101011/items/96054ebbd876e378cac4)

##git pullは、fetchとmergeの両方を組み合わせたコマンド

上記の記事で、ローカルリポジトリの内容をリモートリポジトリに送信(アップロード)することを**「push」**と呼びましたね。

元記事を表示

git基礎(実践)

# git基礎(実践)
環境:Windows10,WSL Ubuntu 18.04, Git2.28.0, (Backlog git)
言語:C++(好きな言語使ってください)
実際に、[理論編の話](https://qiita.com/drafts/48d6a625a9e0be2852d2)を、1からgitで開発していきます。
## §1 gitリポジトリを作成する
### 1.ディレクトリを作成する
gitリポジトリを作成するには、ディレクトリが必要です。/home/[user]/以下に”demo”ディレクトリを作成します。
Ubuntuでは、mkdirでディレクトリを作成できます。
![eac69da3-7747-4274-a8d3-2dc5803214d7.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/905557/467a559f-b085-04f8-51e5-0f555171a90a.gif)

git initコマンドが成功すると、.gitディレクトリ(隠し)が作成されます。

“`
l

元記事を表示

git基礎(理論)

# git基礎(理論)
環境:Windows10,Git2.28.0,(Backlog git)
この記事では、gitのデータモデルを見ていきます。
実際に動かしたいという方は、[実践編](https://qiita.com/drafts/4dc0eb8bb65e0fd2dc1a/)をみてください。
## §1 gitとは
gitは、分散型バージョンコントロールシステムです。
例えば、あるプロジェクトを複数人で取り組むときに、”誰が”,”いつ”,”どのような”変更をコードにしたのかを管理ます。各個人が、ローカルで作成した部品を統合したり、また、ある時点でエラーが発生した場合、それ以前の状態に簡単に戻すことができます。

gitを使うにはgitの理解しづらいインターフェースを覚えなければなりませんが、その根底にあるデザインとアイデアは非常に美しいです。ここでは、gitのデータモデルから始めて、コマンドラインインターフェースについて実際に触って学びます。gitのデータモデルを理解すると、コマンドがどのようにデータを操作しているかという点をよりよく理解できるようになっています。

gitは

元記事を表示

きっとgit使えないとbad②

#はじめに
昨日に引き続き、gitの基本的なコマンドを覚え書きのつもりで紹介します。

↓昨日の投稿
[きっとgit使えないとbad
](https://qiita.com/TerToEer_sho/items/8e5f9294c8d0cf936207)

##ローカルでブランチを切ってマージするまで

###ローカルブランチを作成

“`bash
% git branch ブランチ名
“`

###ローカルでブランチを切り替える

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

###ローカルでブランチを作成し、切り替える(上2つを同時に行う感じ)
“`bash
% git checkout -b ブランチ名
“`
間違えてマスターにコミットしないためには、こっちの方が使い勝手がいいかな…

###マスターに切り替える
“`bash
% git checkout master
“`

###全て(ローカル・リモート)のブランチを一覧表示
“`bash
% git branch -a
“`

###ローカルのブランチをリモートにプッシュ

“`

元記事を表示

Githubでプッシュしたリモートブランチ名を変更する

リモートにプッシュしたブランチ名が後々イケてない事に気づいた、、、
恥ずかしい、、どうすれば、、、
そんな時の対策!!

## 手順の流れ
1. ローカルのブランチ名を変更する
1. リモートの変更前ブランチを削除
1. 1で変更したローカルブランチをリモートにプッシュ

※この記事では変更前ブランチ名 > 変更後ブランチ名 に変更する

## 1. ローカルのブランチ名を変更する
“`
$ git branch -m 変更前ブランチ名 変更後ブランチ名
“`
※この時点ではローカルのみ変更されている
## 2. リモートの変更前ブランチを削除
“`
$ git push origin :変更前ブランチ名
“`

## 3. 1で変更したローカルブランチをリモートにプッシュ

“`
git push origin 変更後ブランチ名
“`

これでローカルもリモートも恥ずかしい履歴がスッキリ!!

元記事を表示

【未経験対象】GitHubが使えるってどういうこと?

# GitHubって募集要項にありますが・・・
未経験採用で応募したい方から質問があったので解説します。

## ターミナルで出来なきゃだめ?
GUIツール使ってもOKです。
(インフラエンジニア志望の方はだめです!)

## じゃあ何ができればいいの?
### コミットの変更行数
 150行とかだと結構読むのが大変なので、こまめにコミットしましょう
### コミットのコメント
 画面1とかではなく、メイン画面の遷移ボタンを実装くらい詳しく書いてください
### ブランチの切り方
Git-flowかGitHub-Flowで書いてあると嬉しいです。

以下参考までに
[【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう:こっそり始めるGit/GitHub超入門(終) – @IT](https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html)

# まとめ
スクールや教科書だとあまり言及されてないことなので共有します。
一緒に実務をして気持ちよく開発できるように練習頑張ってくださ

元記事を表示

git addとcommit、pushの関係をわかりやすく説明する【Gitコマンド解説①】

以下のGitコマンド、よく出てきますよね。

“`
$ git add
$ git commit
$ git push
“`
このコマンドを打つことで、ソースコードを書き換えてGithubを更新してくれる。プロフィールに草が生えるからうれしい。今日のプログラミングはおしまい。

しかしここで、**「git addとcommitの関係は? git pushってどういう意味?」**と聞かれると、すらすらと答えられない人も多いのではないでしょうか。草が生えて喜んでるのにそんなこと聞くなよ、と。プログラミングを始めたころは、私もなんとなくこのコマンドを使っていました。

今日は、git addとcommit、pushの関係をわかりやすく解説していこうと思います。

##リモートリポジトリとローカルリポジトリって?

Gitコマンドを理解するためには、まず**「リモートリポジトリローカルリポジトリの関係」**を理解する必要があります。

リポジトリとは、ファイルやディレクトリの履歴を管理する場所のことです。

自分のパソコン内でバージョン管理するために作成したリポジトリを**ローカル

元記事を表示

Gitで間違ってPRをマージした時にRevertして再度PRを出す方法

## 対象者
– Gitでrevertした後、再度Mergeしようと思ってプルリクを出したら差分がないと言われて困っている人。
– 他の記事で「RevertのRevertをする」という言葉を見て、頭がこんがらがった人。

## 何が起きたのか
1. developブランチ -> masterブランチ にプルリクを出してMerge
1. やっぱりMergeを取り消したいのでRevert
– revertボタンを押してrevertブランチ -> master にrevertプルリクを出してMerge
1. 再度 develop -> master にプルリクを出す
– すると、There isn’t anything compare.

差分がないとなってしまう。。

## どうすればよいのか
Revertと聞くと、「戻す」というイメージを持つかもしれないが、実際は新たな修正をMergeしているに過ぎない。つまり上記の例のようにrevertした直後は、「origin/masterの状態が最

元記事を表示

Git②【ローカルリポジトリとリモートリポジトリ 】

#はじめに
これは学習用のメモになります。

#①ローカルリポジトリ
##ローカルリポジトリ流れ
ローカルは3つのエリアに分かれている。
①ワークツリー→②ステージ→③リポジトリ

①ワークツリー・・・・ファイルを変更する作業場
②ステージ・・・・コミットする変更を準備する場所
③リポジトリ・・・・スナップショットを記録する場所

##1.ワークツリーの変更をステージに追加する

“`
git add <ファイル名>
git add <ディレクトリ名>
git add .
“`

##2.変更を記録する(コミット)
`git commit`コマンドでリポジトリにスナップショットを記録します。

“`
git commit
git commit -m ‘<メッセージ>‘
git commit -v
“`

###現在の変更状況を確認する
変更されたファイルを確認する

“`
git status
“`

###変更差分を確認する

“`
#git addする前の変更分
git diff
git diff <ファイル名>

#git addする後の変更分
git dif

元記事を表示

OTHERカテゴリの最新記事