- 1. Git初心者(自分)によるWSLでのGit導入からGithubの使用まで[自分用]
- 2. iOSでgitのcommit hashを取得し表示する
- 3. Gitよく使うコマンド
- 4. Gitのファイル変更の取り消し(git checkout,git reset)について
- 5. Flutterコードをpushする前に静的解析チェックをする
- 6. git > アカウント切り替え後 > Permission denied と表示される
- 7. Git で、トラッキングしていないファイルをまとめて一括で .gitignore に追加する
- 8. 複数のコミットを一括でcherry-pickする
- 9. Nuxt.jsで初めて作成したポートフォリオをGitHub Pagesで公開しました
- 10. [備忘録]vimをgitのエディタのdefault設定に
- 11. git revertでコンフリクトした記録
- 12. AWS CodePipelineが対応していないgitリポからのCI/CD構築
- 13. gti cloneでリポジトリの中身だけ取ってくる
- 14. git 過去の複数コミットのコメントを修正する
- 15. 開発ファイルをgithubで管理する方法
- 16. GitとGitHub(とTortoiseGit)を連携させる方法
- 17. gitで自分のローカル環境ファイルだけ無視したい
- 18. Githubの使い方(擬似チーム開発)
- 19. 不要なブランチを一気に削除するワンライナー
- 20. 複数のgithubアカウントをノンストレスで運用する方法(脱ssh鍵設定)(git credential helperの活用)
Git初心者(自分)によるWSLでのGit導入からGithubの使用まで[自分用]
#はじめに
自分用に適当に書くので参考にならなかったらすみません :clap:#前提
– 実行環境は`WSL`
– GitHubのアカウントは作成済み
– 投稿主(初心者)の備忘録#目次(やること)
1. GitをWSLにインストール[>>](#1-gitをwslにインストール)
2. 初期設定する[>>](#2-初期設定する)
3. リモートの作成[>>](#3-リモートの作成)
4. Gitにpush[>>](#4-gitにpush)
5. Gitからpull[>>](#5-gitからpull)
6. 変更のあったファイルを確認[>>](#6-変更のあったファイルを確認)
7. 変更のあったファイルの内容を確認[>>](#7-変更のあったファイルの内容を確認)
8. addされているファイルを確認[>>](#8-addされているファイルを確認)
9. 変更履歴を確認[>>](#9-変更履歴を確認)#手順
$は入力しなくていいです。
##1. GitをWSLにインストール
wsl上で以下のコマンドを実行“`bash:bash
$ sudo apt install g
iOSでgitのcommit hashを取得し表示する
iOSアプリを開発していて、アプリの画面内にバージョン情報を表記することがあると思います。
この際、gitのcommit hashを表示したかったので、方法をまとめました。
こんな感じでバージョン情報を表記できます。
`1.0.0_d6d4de6`Xcodeのバージョンは `Version 11.4 (11E146)` です。
# Info.plistの編集
`Info.plist` に `CommitHash` というkeyを追加します。
valueには `undefine` というStringを入れておきます。
# Build Settingsの編集
Build Settings の `Preprocess Info.plist File` を `YES` に変更します。
![
Gitよく使うコマンド
## add する前の変更を取り消す
### 特定のファイルの変更を取り消す
“`
$ git checkout <ファイル名>
“`### 特定のディレクトリ以下の変更を再起的に取り消す
“`
$ git checkout <ディレクトリ名>
“`### 全てを元に戻す
“`
$ git checkout .
“`## ブランチを作成
### 新規ブランチを造って、チェックアウト
“`
$ git checkout -b <新規ブランチ名>
“`
現在のブランチから新規ブランチが作成される###リモートのブランチにチェックアウト(ローカルに対応するブランチを新規作成)
“`
$ git checkout -b <新規ブランチ名> <リモートのブランチ名>
“`## ブランチを削除
### マージされているブランチを削除
“`
$ git branch –delete <削除するブランチ名>
$ git branch -d <削除するブランチ名>
“`
マージされていなくても変更がなければ削除できる。### マージされていなブ
Gitのファイル変更の取り消し(git checkout,git reset)について
#はじめに
こんにちは。
この記事をご覧になられている方、初めまして。
プログラミングを勉強し始めて一か月ちょっとのものです。今回は現在学習中の Git , Git Hub で私が特に悩んだ git checkout , git reset の仕組みの違いについて一部を
記載していこうと思います。簡単な記事ではありますが、間違った点などありましたら、ご指摘お願いいたします。
では早速、行きましょう。
#【悩んだ箇所】
Git Bash にて、ファイル変更を行い、その変更を取り消したものを cat コマンドにて確認しました。
git checkout コマンドでは変更は確認できましたが、git reset コマンドでは違いが確認できませんでした。“`git:hogehoge.txt
#hogehoge.txtの中身を確認
$ cat hogehoge.txt
hogehoge
hogehoge2
#hogehoge.txtに「hogehoge3」を記載
$ echo “hogehoge3” >> hogehoge.txt
#上記の内容が反映されていることを確認
$ c
Flutterコードをpushする前に静的解析チェックをする
Flutterアプリのリポジトリにflutter analyze, flutter formatをチェックするCIを設定したのでコードpushする前にチェックしておきたい。
`.git/hooks/pre-push` にこんな感じのスクリプトを置いてpush前にチェックすることにした。
“`
#!/bin/shprePush() {
runFlutterAnalyze
runFlutterDartFormat
}
runFlutterAnalyze() {
flutter analyze
status=$?
if [[ $status = 0 ]]; then
echo ‘[info] Pass flutter analyze’
else
echo ‘[error] Not pass flutter analyze, are you sure to push? [y/N]’
exec < /dev/tty read answer case $answer in 'y' | 'yes') echo '[info]
git > アカウント切り替え後 > Permission denied と表示される
アカウント切り替え後に
“`
git config user.name
git config user.email“`
1. Open “Keychain Access.app” (You can find it in Spotlight or LaunchPad)
2. Select “All items” in Category
3. Search “git”
4. Delete every old & strange item
5. Try to Push again and it just WORKED
[ssh – Git’s famous “ERROR: Permission to .git denied to user” – Stack Overflow](https://stackoverflow.com/questions/5335197/gits-famous-error-permission-to-git-denied-to-user)
Git で、トラッキングしていないファイルをまとめて一括で .gitignore に追加する
## 目的
簡単なプロジェクトで、バージョン管理が必要なファイルが少なく、IDE が吐き出した管理不要なほとんどのファイルを無視したい、といった場合に。
## 手順
先ずはじめに、バージョン管理が必要なファイルだけ、ファイル名を指定した上で git commit しておきます。
残りは、管理する必要がないファイルなので無視しても良いのですが、git status するたびに出てきてしまうので、.gitignore に入れてしまいたい。でも、手作業でそれをするのは敗北を意味する。
そこで、以下のコマンドを実行します。
“`bash
git status –porcelain | grep ‘^??’ | cut -c4- >> .gitignore
“`## 参考
何度かお世話になっているワンライナーですが、どうも毎回 Web 検索に苦労しているような気がするので、検索が容易になりそうなタイトルで投稿しておきます。
元ネタは以下です。
[github – How can I revert this command “git status –porcelain
複数のコミットを一括でcherry-pickする
# 複数の連続したコミットをcherry-pickしたい
## コマンド
“`
git cherry-pick {始点となるコミットの1つ前のコミットハッシュ}..{終点となるコミットハッシュ}
“`
コミットハッシュを`..`でつなぐことで、間のコミットがcherry-pickされる# cherry-pickしたい1つ前のコミットを指定することに注意
始点のコミットハッシュは、cherry-pickの対象に含まれないことに注意。– commitA
– commitB
– commitC
– commitDのうちcommitBからcommitDをcherry-pickしたい場合
“`
git cherry-pick {commitA}..{commitD}
“`
となることに注意。“`
git cherry-pick {commitB}..{commitD}
“`
としてしまうと、commitCとcommitDのみがcherry-pickされてしまう。
Nuxt.jsで初めて作成したポートフォリオをGitHub Pagesで公開しました
この記事は、「Nuxt.js ってなんですか?」な状態の人間が、やりたいことを盛り込んで作成したポートフォリオについて書いたものです。
# 作成したポートフォリオ
[https://tayuta.github.io/portfolio/](https://tayuta.github.io/portfolio/)
GitHub Pages に公開しています。[https://github.com/tayuta/portfolio](https://github.com/tayuta/portfolio)
ソースコードです。![キャプチャ4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178572/08478d28-e3ad-cd97-e1df-2c644a61ec31.png)
![キャプチャ5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178572/42a9e873-2b87-20b1-499a-fd52
[備忘録]vimをgitのエディタのdefault設定に
## やったこと
3回くらい調べちゃったので書いておく
“`
$ git config –global core.editor vim
“`bash -> zsh乗り換え時にdefaultのエディタがnanoになるので、慣れたvimを使いたい時のおまじない。
設定値は~/.gitconfigファイルに設定されています。“`
[core]
editor = vim
“`### 参考記事
[【Git】commitメッセージなど、デフォルトのテキストエディタを変更する](https://qiita.com/ma_me/items/f944101c97a4d0e4a842)
git revertでコンフリクトした記録
# エラー
以下のようなエラーが出ました。“`revert.sh
$ git revert HEAD~4
error: could not revert 54ea783… Adjustment plugin
hint: after resolving the conflicts, mark the corrected paths
hint: with ‘git add‘ or ‘git rm ‘
hint: and commit the result with ‘git commit’“`
“`status.sh
$git status
On branch feature
You are currently reverting commit 54ea783.
(fix conflicts and run “git revert –continue”)
(use “git revert –abort” to cancel the revert operation)Changes to be committed:
AWS CodePipelineが対応していないgitリポからのCI/CD構築
# 本記事の対象読者
* AWS CodePipelineに対応していないgitリポから、CodePipelineに乗せたい人
* AWS Lambdaでgitコマンドを使いたい人# CI/CDしたい
とあるAWSプロジェクトで、ソースコード管理にBacklog gitを利用していました。
どうせならCI/CDを組んでしまおうと考えたのですが、AWS PipelineがBacklog gitに対応しておらず。。。そこで、Backlogのwebhookを使ってS3にまでソースコードを連携する以下のようなアーキテクチャ構成としました。
アプリ自体はnuxt.jsで作成しており、buildしてS3にアップロード、静的WEBとして公開することがゴールです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545043/213288de-10dd-758f-8772-0cf8f7efd554.png)# 実装環境
AWS Cloud9* Serverless Frameworkを利用
gti cloneでリポジトリの中身だけ取ってくる
普通にgit cloneするとリポジトリ名フォルダが作られる。
中身だけほしいときは[orogin-url]のあとにドットを記述する。“`terminal
$git clone [origin-url] .
“`
git 過去の複数コミットのコメントを修正する
# これはなに
過去の複数のコミットのコメントを一斉に修正した際のメモ。# 考え方
git rebase を使用して、既存のコミットを新規コミットで置き換える際に、コメントを書き換える。# 手順
まず、修正するコミットのハッシュを調査する。“`
$ git log –first-parent
“`
修正したいコミットの、ひとつ前のコミットのハッシュを調べる。つぎに、git rebase を開始する。
“`
$ git rebase -i
“`
指定した hash の次以後が rebase の対象となる。
標準 editor で以下のような編集画面が開く。“`
pick d66d1fc3a feat: define placeholder at patients
pick fa93d61e7 feat: define placeholder at groups
pick 4a015ad56 wip: rem placeholder
pick 73c8ae6a4 feat: add place hol
開発ファイルをgithubで管理する方法
#開発ファイルをgithubで管理する方法
新しく開発を始める時にそのファイルをGitやGithubで管理したい!
そんな時に使用するコマンドをメモがてら書きます。##1 管理したいファイルへの移動
“`
cd 管理したいファイル名
“`##2 git init
管理したいファイルまで移動したらgit initコマンドを打ちます。“`
git init
“`そうすることでファイルに.gitファイルが作成されます。
この.gitファイルにはGitで使用されるファイルが新しく作成されます。##3 git add .
“`
git add .
“`
ファイルの変更をステージングします。##4 git commit
“`
git commit -m “コミットメッセージ”
“`変更をcommitします。
##5 git hubに移動
git hubでファイル名と同じ名前のリポジトリを新規作成します。
リポジトリのURLが表示されるのでコピーします。##6 git remote add origin URL
コマンドで
“`
git
GitとGitHub(とTortoiseGit)を連携させる方法
異業種転職から1年が経過し、仕事で初めてソースを触った際にGit(とAWSのCodeCommit)を使用しました。
仕事ではスケジュールの関係で先輩が手取り足取り準備を進めて下さったのですが、
「自分でも出来るようにしておこう」ということで試行錯誤しました。
今回GitHubで試してみたのは、個人学習に使えそうだと考えたためです。# 私の環境
・Windows 10 Pro(64bit)
・Ver 1909 Build 18363.720
・ThinkPad T480s#0. GitHubアカウントの作成
プロジェクト/リポジトリの有無は今回は問いません。
・作成済であれば、「1. Gitのインストール」に進んでください。
・未作成であれば、[こちら](https://github.com/)から作成が可能です。
手順は以下の通りです。取得したいユーザー名・メールアドレス・設定したいパスワードを入力
↓
「Sign up for GitHub」をクリックし、無料版か有料版かの選択画面に遷移
↓
「Unlimited public reposi
gitで自分のローカル環境ファイルだけ無視したい
色々参考にしたが、自分の場合は.gitディレクトリ内にinfoディレクトリもなければexcludeファイルも無かったのでそこからの適用方法。
まずはターミナルでプロジェクトディレクトリに入ったあと、
## プロジェクトフォルダから.gitディレクトリに移動
“`
$ cd .git
“`## infoディレクトリ作成
“`
$ mkdir info
“`## excludeファイル作成
### ディレクトリ移動
“`
$ cd info
“`## excludeファイル作成
“`
$ touch exclude
“``.git/info/`にexcludeファイルが作成されていることを確認。
テキストエディタでexcludeファイルを開き、`.gitignore`と同じ要領で除外ファイルを適用。
Githubの使い方(擬似チーム開発)
#この記事の目的
RailstutorialにしたがってGithubを利用しているだけだとつまらないので、一人二役で擬似チーム開発をやってみたのでそのやり方を書き残しておきます。自分のアウトプットようなので内容はお察し程度です。今後、時間をに余裕がある時に追記予定
#開発作業からプルリクエストまで(1回目)
1、 issueをなんでもいいから定義して、自分のローカルブランチにそのissue用のトピックブランチを作成 or “`$ git pull “` or “`$ git clone“`“`
$ git checkout -b ブランチ名
“`
2、 作業を終える
3、“`git status“`とか“`git diff“`などで自分が作業して変わったところとの差分を確認
4、“`$ git add -A“`
5、“`$ git commit -m“`
6、“`$ git push origin HEAD“`でカレントディレクトリをGithubにpush
7、リポジトリページの[Compare & pull request]を押してプルリクエストを
不要なブランチを一気に削除するワンライナー
gitを使っていると、ついつい不要なブランチが手元に溜まりがちですよね。そんな時は以下のコマンドで一括削除できます。
“`sh
git branch | grep -v master | xargs git branch -D
“`※masterは残す前提です。masterにcheckoutしてから実行してください。
毎回打つのは長いのでエイリアスに登録しておくと良いでしょう。それすらめんどくさい人はツールを作ったので使ってください。
https://github.com/yuzoiwasaki/sweep
複数のgithubアカウントをノンストレスで運用する方法(脱ssh鍵設定)(git credential helperの活用)
# はじめに
githubは公式でも言っているように、基本的に1人1アカウントで運用することが推奨されています。
しかし、様々な事情で複数のGithub Accountを利用している人も多いのではないでしょうか。
そんな時に困るのが、git commandを使用する時の認証だと思います。実際にググってみると、以下のような回避方法がありました。
1. ssh keyを登録して、ssh configを設定して切り分ける方法(一番王道)
2. 1つのリポジトリだけであれば、 `https://username:password@github.com/xxx/xxx` でcloneする方法(リポジトリ一つならこれが圧倒的に楽)
3. `.netrc` を切り替えて使う方法 (sshの設定しなくていいけど、手動切り替え)しかし、sshの鍵登録するのもいやだし、すべてのremote設定を `git://` にするのも面倒。 `go mod` もノンストレスで動いて欲しいし、httpsでやりたいけど、毎回手動で切り替えもしたくないとずっと悩んでいました。
そこで少し調べてみると、 `g