- 1. Git / Gitホスティングサービスとは
- 2. Gitにプッシュしたら、サーバー側で自動プルされるようにした
- 3. Gitコマンド打つのをちょっとでも楽にしたい[Git エイリアス]
- 4. Windows環境で.NETの開発を行う際にGitリポジトリに追加する設定
- 5. SpringBootでGit環境つくる
- 6. 【Jr.エンジニアのやらかし記録】先輩、Pushしたらコンフリクト100ファイルあるんですが…😇
- 7. Gitとか備忘録
- 8. .gitignoreで.DS_Storeを削除する
- 9. Gitでのバージョン管理の流れ
- 10. sakuraのレンタルサーバにGitリモートリポジトリを新規で作成しWindowsにGitローカルリポジトリを作成する方法(tortoiseGit編)
- 11. Gitの管理について -step4-
- 12. Gitの管理について -step3-
- 13. GitHub Organization内のactionをDiscordで通知する
- 14. Gitの管理について -step2-
- 15. git diff の各コマンドの違い
- 16. Git関連
- 17. 【intelliJ】【Git】別のリポジトリのブランチをフォーク先のローカルリポジトリにpullする
- 18. Ubuntu ARM64でGitlab Dockerイメージを動かす
- 19. コミット履歴をまとめる方法
- 20. Git で今いるブランチだけを表示/コピペする。
Git / Gitホスティングサービスとは
# 【Gitとは】
Gitは、「分散型バージョン管理システムというツール」である。複数人で開発をする場合は、誰が、いつ、どの部分を、どのように変更したのか、分からなければならない。
Gitを使いバージョンを管理することで、それが解消される。
ある機能を加えたり、修正を行った段階ごとにGitで記録をしていくことで、あのときの状態に戻したい!と思った場合も簡単に戻すことが出来る。::: note
Gitで出来ることは…
・ファイルの変更履歴(いつ、誰が、どこを)が管理できる。
・過去のファイルに戻せる
・プログラムのソースコードだけではなく、Excelファイル、画像などあらゆるファイルを管理出来る。
・チームで共有できる。
:::Gitには**ローカルリポジトリ** と **リモートリポジトリ**と呼ばれる2つのリポジトリがあり、このリポジトリに変更した履歴をどんどん追加していく。
各自のマシンにはローカルリポジトリがあり、ここに変更を追加したあと、一つのサーバーにあるリモートリポジトリを、ローカルリポジトリと同じ状況にする。そうすることで、複数人で開発をしている場合でも、同じ
Gitにプッシュしたら、サーバー側で自動プルされるようにした
# サーバーへのデプロイ
### 現状
GithubへPush -> サーバー側でPull -> 自動リコンパイルの流れで開発中のアプリケーションを実行していましたが、毎回毎回サーバーに繋いで`Pull`するのはめんどくさいです。
### 目標
GithubへPush -> サーバー側で自動Pull -> 自動リコンパイル
の流れにし、手動の作業はGithubへの`Push`だけにしたいと思います。# 使うもの
## Github
プロキシサーバーの443に向けてGithubからWebhookを送信するように設定し、プロキシサーバーからデプロイサーバーに向けてリバースプロキシでWebhookを転送します。## プロキシサーバー
### Nginx
いつものごとく、Githubから`https://webhook.example.com`に飛んでくるWebhookを`http://192.168.1.x:5000`にプロキシします。## デプロイサーバー
### Flask
Nginxから飛んできた`Webhook`を読み、`subprocess`を使って`git p
Gitコマンド打つのをちょっとでも楽にしたい[Git エイリアス]
# はじめに
ブランチを変えようとした時にコマンドを打ちました。
“`$ git chekcout hoge_branch“`
Enterをクリック。
“`
git: ‘chekcout’ is not a git command. See ‘git –help’.The most similar command is
checkout
“`・・・タイポしてた😩
みたいな経験ありませんか??
僕はよくありましたし、checkoutなんて割と使うのに打つのめんどくさいなと思ってます。
こんな時におすすめなのが、***エイリアス***というものです。
この記事を読んで「checkout」は「co」って打てば動くようにしちゃいましょ!
# Gitエイリアスとは
Gitコマンドの短縮形またはカスタマイズされたコマンドを定義する機能です。
これにより、長いコマンドや頻繁に使用するコマンドを短いキーワードで実行することができます。
Gitエイリアスは、Gitの設定ファイル(通常はユーザーのホームディレクトリにある.gitconfigファイル
Windows環境で.NETの開発を行う際にGitリポジトリに追加する設定
# 概要
WindowsでVisual Studioを利用した開発を行う際の最初の設定。
これらのファイルはGitリポジトリ準備時、およびソリューション追加時に配置する。
まずは作業1と作業2をGitリポジトリ準備時に実施し、ソリューション追加時に作業3をソリューションごとに行う。
# 作業1. デフォルトの改行コードをCRLFにする
:::note
既定の文字コードが`CRLF`であるWindows専用の環境で開発し利用するプログラム(基本的には.NET Framework)のリポジトリで検討が必要な設定となる。
:::## 手順
リポジトリ直下に次のファイルを配置する
“`ini:.gitattributes
# https://docs.github.com/ja/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
# デフォルトの改行コードをCRLFにする。
* text=auto eol=crlf
# Linuxシェル
*.sh text eol=lf
#
SpringBootでGit環境つくる
# この記事はこれの続きです
https://qiita.com/waokitsune/items/18932a8b259191ad69c8
# 概要
この状態から…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/3cdbb461-1007-b3cf-b3c8-b73ff0e2fcd3.png)最終的にこうなるように設定していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/7abf2dc5-2276-62eb-eac1-a7cc429a3103.png)STSのスクショが明るいモードだったり暗いモードだったりしますがご愛敬です。
試行錯誤した名残です。# ローカルリポジトリー環境作成
ここを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
【Jr.エンジニアのやらかし記録】先輩、Pushしたらコンフリクト100ファイルあるんですが…😇
# 「先輩、Pushしたらコンフリクト100ファイルあるんですが…😇」
### 先輩「Meet繋いでやりますか😎」
### 転職4日目の私「神😭😭😭😭😭😭😭😭😭😭」## どんな状況?
・masterからブランチを切って作業しプルリクも作成している
・ビルドコマンドを打って、変更された100ほどのファイルをコミットしてプッシュ
・リモートに差分があり、コンフリクトしてしまった
・GitHub側に提示されたCommandlineを利用し、masterをブランチにマージしたが、手元で直そうにも対象ファイルが100個以上ある
・そもそもコマンドで勝手に変更されたファイルばかりでどう直していいかワカラン😇## 誰が対象?
・コンフリクトが出た最後のコミット差分を失っても構わない
・今のブランチを消しても問題ないところまでコミットが済んでいる## やったこと
まずはコンフリクトが起こっているブランチ上(仮にuplorderブランチとする)で作業。
“`
$ git status
// 作業ディレクトリの状態とステージング エリアの状態を表示するコマンド
“`
“`
$
Gitとか備忘録
## はじめに
この記事では、初心者が仲間内で開催されたGit・Github講座を受けて理解したことを備忘録として保存します。## Gitとは
Gitはローカルでバージョン管理をするためのツール。## Githubとは
Gitを使ったオンラインサービス。自分のローカルのGitリポジトリを公開したり別の端末と共有したり他人と一緒に開発したりするときに使う。## 使い方
### clone
Github上のリポジトリをローカルに複製する。
一緒にbranch情報も複製される。
### addとcommit
add: リポジトリの変更を保存する部分を指定する
commit: 変更をメッセージといっしょに保存する。
### pullとpush
pull: Github上に上げられた変更をローカルに適応する。
push: Github上に変更を保存(アップロード)する。## プルリクエスト
Githubではファイルの編集は差分で記録している。
同じ箇所を複数人が触ると競合発生!
⇨ 権限がないとpushできないようにする。
⇨ 変更したかったら権限者にお願いしよう!
これがプルリ
.gitignoreで.DS_Storeを削除する
# 目的
Gitにアップロードした際に .DS_store も Git にアップロードされている。
.DS_store は Git アップロードされないようにしたい。# 実施内容
1.gitignore に追記
“`s
# OS-generated files
.DS_Store
“`2.確認結果
“`s
$ git status -s
M .gitignoreStatus Codes:
A added 新規ファイル。gitが新規に追跡したファイル
M modified 変更があったファイル
D deleted 削除されたファイル
R renamed 名前変更
C copied コピー
U unmerged マージしていない
? untracked 未追跡。gitが認識していない。
! ignored 無視$ git diff –stat
Gitでのバージョン管理の流れ
プログラミングを学習する上で欠かせないGitについて、基本的なバージョン管理の流れとそのコマンドをまとめます。
ブランチを切ったりコミットを取り消したりするところは別途まとめます。
## バージョン管理の必要性
ファイルを作成し完成したら保存、そのファイルを修正して完成したら保存。それぞれ履歴として残しておく手段として、別のファイル名にして保存しておくことが考えられます。(例)
– ファイル.txt
– ファイル2.txt
– ファイルnew.txt
– ファイル230101.txtファイル名の末尾に番号や名前、日付をつけることでファイルのバージョンらしき情報をつけられます。しかし、上記の例では、
– ファイル2とファイルnewはどっちが新しい?
– ファイルnewとファイル230101はどっちが新しい?
– 最終更新日はファイル.txtが一番新しいけど……のような問題が起こります。
さらに複数人で同じファイルで作業した場合には……。
このような問題を解決するためにGitでは、
– ファイルの変更内容
– 変更履歴
– 変更した内容の概要
– 変更した人
sakuraのレンタルサーバにGitリモートリポジトリを新規で作成しWindowsにGitローカルリポジトリを作成する方法(tortoiseGit編)
久しぶりに新しくGitリポジトリを作成しようとするとやり方を忘れていることが多いため備忘のために記載する。
尚、ssh公開鍵認証の設定は終わっている状態で実施している。# ◆大まかな手順
> [sakuraサーバ]
①sakuraサーバにgitフォルダを作成する
②作成したフォルダをgit initで初期化する
[Windows(tortoiseGit)]
①tortoiseGitにて「Git クローン(複製)」を行う
②最初のコミット&プッシュ# ◆詳細手順
## [sakuraサーバ側]
### ①sakuraサーバにgitフォルダを作成する
– Puttyなどでsakuraサーバにログインする
– gitフォルダを作成する(gitと分かるように「.git」と付けるとイイ!)
>“`
>mkdir xxxxxx.git
>“`
### ②作成したフォルダをgit initで初期化する
– 作成したgitフォルダに移動しgit initで初期化する
>“`
>cd xxxxxx.git
>git init –bare –share
>“`
各パラメータの意味
g
Gitの管理について -step4-
## 前回
![スクリーンショット 2024-01-15 151545.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/a8ed87bd-013d-c83f-0fd6-d9a3a4182e86.png)
BさんのPCでブランチを作成し、①,②を開発しました。
リモートリポジトリにプッシュを行いAさんがプル(①,②)を行えるようにしました。# マージ
## やり方
マージする先のブランチであるか確認を行う。
“`コマンドプロンプト
git branch
“`
![スクリーンショット 2024-01-15 150852.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/d175ec09-f8e5-b771-e574-220152b21214.png)
今回私はdevelopブランチをmainブランチにマージする。
mainブランチに変更
“`コマンドプロンプト
git checkout
Gitの管理について -step3-
# ブランチ
## 1.ブランチ・マージとは
![スクリーンショット 2024-01-15 121408.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/9cbda15d-e147-b2c0-62db-fc7c2c5ee5d1.png)
例えば上記のようにコミット1,2,3と履歴が続きます。
元祖変更履歴を「master」といいます。
基本的にはリリースしたものが「master」と考えてください。
![スクリーンショット 2024-01-15 121942.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/acb971cd-baae-24b8-e025-37ecd0390a85.png)
マスターから枝分かれした歴史(①,②)を作ることができます。
Gitではこのことを「ブランチ」といいます。
![スクリーンショット 2024-01-15 122510.png](https://q
GitHub Organization内のactionをDiscordで通知する
# 目的
プログラミングコンテストで出場した後に途端にやる気をなくすコンテストあるあるに苛まれているためアクションをDiscordに通知してまだプロジェクト自体は動いてる感を出し、メンバーの創作意欲を復活させます### やってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627466/ddb5ea9a-6c50-038c-a98b-d7848760a9c7.png)
1. GitHubの通知を受け取るテキストチャットを作ります(作らなくてもOK)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627466/54a34672-cfd7-735d-b8c8-4fadb5b3027e.png)
2. [チャンネル編集]から[連携サービス]を選択しウェブフックを作成します![image.png](https://qiita-image-store.s3.ap-northeast
Gitの管理について -step2-
# 1.git pull
![スクリーンショット 2024-01-15 110927.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/b28c7b99-539c-59e3-b2ae-75d205b057a8.png)
Aさんは1人で開発をしていました。
あるとき、Bさんが開発に加わることになりました。
## Bさんの環境を作る。
### ①BさんをGitHubリポジトリに招待する。
![スクリーンショット 2024-01-15 111834.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568688/f066b755-d600-e6b1-a1db-f09560f66177.png)
[1] 「Settings」タブを選択
[2] 左側メニューから「Collaborators」を選択
[3] 「Add collaborator」を押下し、招待したいメンバーを検索
※検索はGitHubユーザー名もしく
git diff の各コマンドの違い
# 背景
`git diff –stat` をよく叩くが、`git diff` には複数の比較方法があるようで、いまいち以下3つの違いが分かっていない。
– `git diff –stat`
– `git diff main –stat`
– `git diff –cached –stat`# 調べた結果
– `git diff –stat`
– 前提:追跡されているファイル
– ステージングと作業環境との差分を出してくれる。
– 比較対象は ステージング:作業環境
– `git status -s` にて ?? になっている新規ファイルは含まれてこない。
– `git add .`
– 変更をステージングに反映
– `git diff –cached –stat`
– 比較対象は ステージング:最後のコミット内容
– `git diff main –stat`
– 比較対象は 現在のブランチ:main
– `git commit -m “コメント”`# 参考
一度もコミットしていない場合、以下は同じ結果
Git関連
https://qiita.com/ngtkk/items/05097d127db6a415a7d8
【intelliJ】【Git】別のリポジトリのブランチをフォーク先のローカルリポジトリにpullする
intelliJのGUIで通しでやる方法が案外ぱっと見つからなかったためメモ
Fork元のリポジトリのブランチをマージするとき等に使ったりするイメージです。### 前提
intelliJとGitの連携ができている### 結論
①Git→リモートの管理
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629824/edc0e8c4-dda7-275b-929e-40ca1f156f78.png)②pullしてきたいリポジトリのURLをリモートリポジトリとして追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629824/1d7705f2-a150-00d0-47b9-95109cd29d4c.png)③fetch(1度リモートリポジトリの内容を取りこむ)
④pull操作時にFork元リポジトリ/ブランチが指定できるようになっている
![image.png](https://
Ubuntu ARM64でGitlab Dockerイメージを動かす
# 概要
Parallesを使ってM1 MacにUbuntu ARM64をインストールして、Gitlab Dockerイメージを動作させる。ARMプロセッサ搭載のLinuxベースのNASでGitlabを動かしてみたく、そのために事前に動作確認してみた。# 環境
– MacBook Pro (M1): macOS 14.2.1 Build 23C71
– Parallels Desktop 19 for Mac Standard Edition 19.2.1 (54832)
– Ubuntu 22.04.3 LTS (Jammy Jellyfish)
– Docker version 24.0.7, build afdd53b# 事前準備
Parallels Desktopをインストールする。# Ubuntu ARM64のインストール
Ubuntu ARM64をインストールする。手順は[Parallels Desktopを使用して、Apple M1チップ搭載のMacに新しいLinuxシステムをインストールする](https://kb.parallels.com/jp/1284
コミット履歴をまとめる方法
# 概要
何度もコミットしてプッシュするとリモートブランチに履歴が残ります。残す必要のあるコミットであれば問題ないですが、簡単な修正であれば1つ前のコミットにまとめた方がコードレヴューの際、レビュワーは見やすくなると考えています。また、コミットをまとめる事で、後から履歴を追う際、コミットメッセージから何をやっているか一目で分かり易くなると思います。今回は、チーム開発に於いて、便利な`git`操作を学んだのでその方法を共有します。# 注意事項
:::note warn
– 同一のブランチで2回以上のコミットを行った場合に使用する
– `reset`を行い過ぎると、他の人の改修内容が含まれてしまうので注意が必要
– 共通で使っているブランチ(`develop`、`master`、`main`等)では、絶対に使用しない
:::# 実施方法
– `git log`にてコミットの状況を確認する
“`sh
# コマンド
git log# 出力内容
commit **********************************a82a81 (HEAD -> feature
Git で今いるブランチだけを表示/コピペする。
# 絶対もっとよい方法があるはず!
ローカルで作業をしていて今いるブランチを確認したいときや、プルリクエストをするたびにローカルブランチ名を入力するとき面倒くさい!絶対もっとよい方法があるはずと思って調べました。
# 今いるブランチだけを表示する方法
今までは自分が今いるブランチを知りたいとき、よくあるこのようなコマンドをターミナルに打っていました。
“`
git branch
“`
確かに今いるブランチだけ色が違うので分かりはするのですが、ローカルブランチの数が多くなるととても面倒です。調べてみるとこれで行けることが分かりました。
“`
git branch –show-current
“`
これでターミナル上に今いるブランチのみが表示されます。最高です。# 今いるブランチ名をコピペする方法
プルリクエストのためローカルブランチと同じ名前でリモートレポジトリにプッシュしたいとき今まではタイプしたりコピペしていました。時間がかかるし、タイプミスしていて最悪でした。
でもこれで行けます。
“`
git branch –show-current | c